我试图将Excel宏放在一起以消除一系列重复的击键。 我在表单中填写文字: " XXXXXXXX XXXXXXXX(XXXX XXXXX XXXXXXX)" 并删除最后的位,使其成为: " XXXXXXXX XXXXXXXX"
我正在使用击键:F2,Shift + Ctrl + RtArrow,Shift + Ctrl + RtArrow,Shift + Ctrl + RtArrow,Shift + RtArrow,Backspake,Enter
我尝试使用Excel的录制宏功能录制这一系列的击键,但它无法正常工作。如果我在下一个单元格上运行录制的宏,包含" YYYYYYYYYYYYYYYY(YYYYYYYYYYYYYYYYYYY)",它不会执行我录制的击键,它只是用得到的单元格内容我将宏记录在" XXXXXXXX XXXXXXXX"中。 Excel生成的代码是这样的,它似乎忽略了我执行的命令,只复制结果:
Sub DelProcVintage()
'
' DelProcVintage Macro
'
' Keyboard Shortcut: Ctrl+j
'
ActiveCell.FormulaR1C1 = "XXXXXXXX XXXXXXXX"
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
有没有办法像我想的那样通过宏发出我的按键序列?
谢谢, 马特
答案 0 :(得分:1)
我最后修改了一些我找到的代码。它让我大约80%,这节省了大量的重复按键。我修改了此代码以删除字符串的最后25个字符。有些位有多于或少于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
答案 1 :(得分:0)
我建议您选择一个新列并添加如下公式:
=Left('cell',10)
左边的公式在一些数字之后从右边切割所有内容,然后如果你想制作一个宏(例如第1行到第500行):
Range("D1:D500").FormulaR1C1 = "(Formula)"
然后复制粘贴值并删除原始列