Excel VBA用户最近在一个论坛上询问,当工作表名称存储为变量时,如何在VBA中选择工作表。首先他不需要选择工作表的几率约为95%。
为了说明,我打开了宏录制器,选择了单元格D9,然后在单元格中输入“ x”。这是Excel记录宏的方式:
Sub Macro1()
Range("D9").Select
ActiveCell.FormulaR1C1 = "x"
End Sub
Excel必须分两步记录该宏,因为我确实(1)选择了单元格D9,然后我做了(2)在该单元格中输入了一个值。但是在您的VBA程序中,
您几乎不需要选择一个对象(例如工作表,范围,图表等)来对该对象执行某些操作。相反,您可以指定对象,然后直接应用操作。
为了说明,此宏在所示的工作簿,工作表和单元格中输入“ x”,而不激活Book1,Sheet1或单元格D9:
Sub Macro2()
Workbooks("Book1").Worksheets("Sheet1").Range("D9").FormulaR1C1 = "x"
End Sub
同样,您可以执行两个操作,如下所示:
Sub Macro3()
With Workbooks("Book1").Worksheets("Sheet1").Range("D9")
.FormulaR1C1 = "x"
.Font.Bold = True
End With
End Sub
编写不选择要使用的对象的代码至少有两个优点。首先,您的代码将运行得更快。其次,它将更短并且更容易编写。