我写了这些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
答案 0 :(得分:1)
如上所述,您实际上不需要使用.Activate
,因为您要指定范围来自哪个表。
您可以安全地删除任何.Activate
或.Select
,您的代码即可使用。
希望这会有所帮助。