excel-vba 避免在Excel中使用ActiveCell或ActiveSheet
示例
如果(由于任何原因)代码在错误的地方执行,则使用ActiveCell或ActiveSheet可能成为错误的来源。
ActiveCell.Value = "Hello" 'will place "Hello" in the cell that is currently selected Cells(1, 1).Value = "Hello" 'will always place "Hello" in A1 of the currently selected sheet ActiveSheet.Cells(1, 1).Value = "Hello" 'will place "Hello" in A1 of the currently selected sheet Sheets("MySheetName").Cells(1, 1).Value = "Hello" 'will always place "Hello" 在名为A1的工作表中 "MySheetName"
Active*如果您的用户感到无聊并单击另一个工作表或打开另一个工作簿,则使用会在长期运行的宏中造成问题。
如果您的代码打开或创建另一个工作簿,则可能会产生问题。
如果您的代码使用了它,Sheets("MyOtherSheet").Select并且在开始读或写它之前忘记了您在哪张纸上,可能会造成问题。