Vba 当激活方法成功时,选择方法失败!!!很奇怪

Vba 当激活方法成功时,选择方法失败!!!很奇怪,vba,Vba,我已经写了这些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

我已经写了这些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
,因为您正在指定工作表的范围的来源

您可以安全地删除任何
。激活
。选择
,代码将正常工作


希望这有帮助。

您不需要
。激活
。如果使用完全指定的变量,如
rs.Range(“A2:H”)和rs.Range(“G”和rs.Rows.Count)。End(xlUp).Row),请选择
。看见我还建议声明变量并使用
选项Explicit
。当我删除rs.activate时,代码不起作用。但后来我发现了真正的问题,在指定计算最后一行的范围G时,我没有提到图纸对象rs。因此,在activesheet上计算lastrow,而不是在rs sheet上,这导致找不到空白单元格的错误。好的,谢谢大家的评论和帮助。真的很感激!!!