Workbooks(test.xlsm).Worksheets("AAA").Range("a1").Copy
Workbooks(Practice.xlsm).Sheets("AAA").Range("c1")
为什么在上述查询中 Range 对象不会像工作表自动生成那样自动生成 在编写上述代码时在工作簿对象之后。
最佳答案
非常好的问题。这是我对它的理解,我认为这是正确的,但...它可能不是正确的:D
这可以用“早期绑定(bind)”和“后期绑定(bind)”概念来解释。在后期绑定(bind)中,对象在运行时解析,而不是提前解析,因此 Intellisense 对于后期绑定(bind)对象不可用。
在 VBE 中分别输入这 2 个单词,您将看到此内容
Workbooks
对象是早期绑定(bind)(As Workbook
),Worksheets
对象是后期绑定(bind)(作为对象
)。
那么我们如何绕过它呢?只需声明您的对象即可。例如
Sub Sample()
Dim wb As Workbook
Dim ws As Worksheet '<~~ EARLY BINDING
Set wb = Workbooks("Test.xlsm")
Set ws = wb.Worksheets("AAA")
End Sub
现在您将获得智能感知
关于excel - 为什么当我们这样写时范围对象不会自动生成 worksheets(1).range ("A1"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789045/