我已经编写了这些VBA代码,除了一个问题外,它们工作正常。在语句rs.activate 上,我之前写了rs.select,但不起作用。
我的问题是为什么rs.activate 在这里工作而不是rs.select
Sub Extract_Data()
Checklist.Sheets.Add.Name = "DataNew"
Set msi = ThisWorkbook.Sheets("MS Info")
Set rs = ThisWorkbook.Sheets("Result")
Set tmp = ThisWorkbook.Sheets("Temp")
Set evd = Checklist.Sheets("Evaluation Details")
Set smm = Checklist.Sheets("Summary")
'''''''''''''''''''''''''''
'''''''few more codes''''''
'''''''''''''''''''''''''''
rs.Activate
With rs.Range("A2:H" & Range("G" & Rows.Count).End(xlUp).Row)
.SpecialCells(xlBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
With rs.Range("N2:P" & Range("G" & Rows.Count).End(xlUp).Row)
.SpecialCells(xlBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
'''''''''''''''''''''''''''
'''''''few more codes''''''
'''''''''''''''''''''''''''
end sub
如前所述,您实际上不需要使用 .Activate
,因为您正在指定您的范围来自哪个工作表。
您可以安全地删除任何.Activate
或.Select
,您的代码将正常工作。
希望这有帮助。