Excelmacros:突出显示和删除文本

我试图把Excelmacros放在一起,以消除一系列重复的击键。 我正在以“XXXXXXXX XXXXXXXX(XXXX XXXXX XXXXXXX)”的forms取出文本,并在最后删除位:“XXXXXXXX XXXXXXXX”

我正在使用按键:F2,Shift + Ctrl + RtArrow,Shift + Ctrl + RtArrow,Shift + Ctrl + RtArrow,Shift + RtArrow,Backspake,Enter

我试图用Excel的loggingmacros函数logging这个按键序列,但它不工作。 如果我在包含“YYYYYYYYYYYYYYYYY(YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY)”的下一个单元格上运行录制的macros,它不会执行我logging的击键,它只是用logging的单元格的结果内容replace单元格的内容macros,“XXXXXXXX XXXXXXXX”。 Excel生成的代码是这样的,它似乎忽略了我执行的命令,只是复制结果:

Sub DelProcVintage() ' ' DelProcVintage Macro ' ' Keyboard Shortcut: Ctrl+j ' ActiveCell.FormulaR1C1 = "XXXXXXXX XXXXXXXX" ActiveCell.Offset(1, 0).Range("A1").Select End Sub 

有没有办法通过一个macros发出我的按键序列,我想这样做?

谢谢,Matt

我最终修改了一些我find的代码。 它使我在那里获得了大约80%,这节省了大量的重复击键。 我修改了这段代码来删除一个string的最后25个字符。 有一些比特数多于或less于25个字符,但是有那么几个,很容易发现它们并修复。

 Sub delEnd() ' ' delEnd Macro ' ' Keyboard Shortcut: Ctrl+j ' Dim Rng As Range Dim WorkRng As Range Dim xChar As String On Error Resume Next xTitleId = "Macro Options" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) 'xChar = Application.InputBox("String", xTitleId, "", Type:=2) For Each Rng In WorkRng xValue = Rng.Value Rng.Value = VBA.Left(xValue, VBA.Len(xValue) - 25) '25 characters is the most common length of the text I am removing Next End Sub 

我build议你采取一个新的列,并把公式如下:

 =Left('cell',10) 

左边的公式从一些数字后面的右边开始,然后如果你想创build一个macros(示例1到500):

 Range("D1:D500").FormulaR1C1 = "(Formula)" 

然后复制粘贴值并删除原始列

Interesting Posts