从录制的宏中删除所有 "Selections"
Remove all the "Selections" from a recorded Macro
我记录了这个,然后添加了 LR = LastRow 使其动态化,但我不知道如何删除继续进行的所有选择
此外,它们都做同样的事情,但是是写数组的一种方式 better
然后是另一种方式,即 faster
,更多 stable
...
谢谢
Selection.FormulaArray = "=ISNUMBER(MATCH(RC[-5]&RC[-6],R1C1:R" & LR & "C1 & R1C2:R" & LR & "C2,0))"
Selection.FormulaArray = "=ISNUMBER(MATCH(B1&A1,$A:$A$" & LR & " & $B:$B$" & LR & ",0))"
录制宏
Sub Winding()
Dim ws As Worksheet
Dim Rng As Range
Dim LR As Long
Set ws = Sheets("Unpivot_RegistrationData")
LR = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Set Rng = ws.Range("G1").Resize(LR, 1)
Range("G1").Select
Selection.FormulaArray = "=ISNUMBER(MATCH(B1&A1,$A:$A$" & LR & " & $B:$B$" & LR & ",0))"
Selection.AutoFill Destination:=Rng, Type:=xlFillDefault
End Sub
首先,对 A1
或 R1C1
样式的偏好应该是由构建公式字符串的难易程度决定的。性能或稳定性没有差异
要删除 Selection
试试这个
请注意,我已删除 AutoFill
,并一步将公式应用于整个范围。
Sub Winding()
Dim Rng As Range
Dim LR As Long
With Worksheets("Unpivot_RegistrationData")
LR = .Cells(.Rows.Count, 1).End(xlUp).Row
Set Rng = .Range("G1:G" & LR)
End With
Rng.Cells(1, 1).FormulaArray = _
"=ISNUMBER(MATCH(B1&A1,$A:$A$" & LR & " & $B:$B$" & LR & ",0))"
Rng.Cells(1, 1).AutoFill Destination:=Rng, Type:=xlFillDefault
End Sub
我记录了这个,然后添加了 LR = LastRow 使其动态化,但我不知道如何删除继续进行的所有选择
此外,它们都做同样的事情,但是是写数组的一种方式 better
然后是另一种方式,即 faster
,更多 stable
...
谢谢
Selection.FormulaArray = "=ISNUMBER(MATCH(RC[-5]&RC[-6],R1C1:R" & LR & "C1 & R1C2:R" & LR & "C2,0))"
Selection.FormulaArray = "=ISNUMBER(MATCH(B1&A1,$A:$A$" & LR & " & $B:$B$" & LR & ",0))"
录制宏
Sub Winding()
Dim ws As Worksheet
Dim Rng As Range
Dim LR As Long
Set ws = Sheets("Unpivot_RegistrationData")
LR = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Set Rng = ws.Range("G1").Resize(LR, 1)
Range("G1").Select
Selection.FormulaArray = "=ISNUMBER(MATCH(B1&A1,$A:$A$" & LR & " & $B:$B$" & LR & ",0))"
Selection.AutoFill Destination:=Rng, Type:=xlFillDefault
End Sub
首先,对 A1
或 R1C1
样式的偏好应该是由构建公式字符串的难易程度决定的。性能或稳定性没有差异
要删除 Selection
试试这个
请注意,我已删除 AutoFill
,并一步将公式应用于整个范围。
Sub Winding()
Dim Rng As Range
Dim LR As Long
With Worksheets("Unpivot_RegistrationData")
LR = .Cells(.Rows.Count, 1).End(xlUp).Row
Set Rng = .Range("G1:G" & LR)
End With
Rng.Cells(1, 1).FormulaArray = _
"=ISNUMBER(MATCH(B1&A1,$A:$A$" & LR & " & $B:$B$" & LR & ",0))"
Rng.Cells(1, 1).AutoFill Destination:=Rng, Type:=xlFillDefault
End Sub