简体   繁体   English

VBA:引用活动工作簿中的工作表

[英]VBA: Referencing a Worksheet in the Active Workbook

While this seems very basic, I am continually getting an error message while trying to select a cell in a certain sheet on my workbook in my Macro. 尽管这似乎很基本,但是在尝试在我的宏的工作簿中的某个工作表中选择一个单元格时,我不断收到错误消息。 Does any one know why this will not work? 有谁知道为什么这行不通吗? I'm getting error message Run Time Error '1004'. 我收到错误消息运行时错误'1004'。 The sheets name is "Sheet1"and my code is below: 工作表名称为“ Sheet1”,我的代码如下:

 Application.ActiveWorkbook.Worksheets("Sheet1").Range("N2").Select

It's bad practice to use ActiveWorkbook when you don't need to. 不需要时使用ActiveWorkbook是一种不好的做法。 It's always better to set your workbooks and worksheets to actual variables that you can call on. 最好将工作簿和工作表设置为可以调用的实际变量。 I think your code is activating another workbook then trying to select a range in a worksheet it can't find. 我认为您的代码正在激活另一个工作簿,然后尝试在无法找到的工作表中选择一个范围。

Sub TryThis()

    Dim wbk As Workbook
    Dim ws As Worksheet

    Set wbk = Workbooks("myWorkbook.xlsm")
    Set ws = wbk.Worksheets("Sheet1")

    'Now when we say "ws." it is actually "Workbooks("myWorkbook.xlsm").Worksheets("Sheet1")."

    'This is okay to start with but it's better to work with the cells directly
    ws.Select
    Range("N2").Select
    Selection = "myText"

    'This is much faster and you won't have to worry about what is currently selected
    ws.Range("N2") = "myText"

End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM