我有一个关于VBA中Workbooks正确地址的问题,这是我很新的。VBA:如何在将工作表作为参数提供给函数时解决正确的工作簿?
这是我到目前为止所做的:
我已经写了一个子,其中包括创建CodeName为“table10”的工作表。
然后我定义的函数来操纵所述片材中的内容:该功能
Text_To_Numbers(worksheet as worksheet)
期望一个工作表的参数。我呼吁使用下面的行从另一个子的函数:
Call Text_To_Numbers(table10)
现在,这里是我的问题:
上述作品完美的时候才会打开的工作簿是一个我想用我的功能来操作。但是,当我有多个打开的工作簿时,该函数将尝试操作不同的工作簿,从而导致错误。
我非常确定必须有一种方法来指定要使用的工作簿,但我无法找到它。这就是说,还有另一个复杂因素:我想操作的工作簿的名称是机器生成的,所以它总是有不同的名称。这意味着一次又一次使用对相同文件名的明确引用不是一种选择。
有人能帮我解决这个问题吗?
使用'ThisWorkbook'作为宏运行的工作簿,如'ThisWorkbook.table10'或'ThisWorkbook.Worksheets(“Table10”)'或使用'Application.Workbooks(“WorkBookName.xlsm”)。Worksheets(“Table10 “)'为其他任何工作簿。 –
或者,您可以声明一个工作簿变量“Dim wb as Workbook”,然后使用它:'Set wb = Workbooks.Open(“Somepath \ Somefile.xlsx”)'打开一个然后'wb.Worksheets(1)以引用该工作簿中的第一张工作表。 –
除非您将引用设置为其他工作簿项目,否则'table10'将始终使用代码引用工作簿中的工作表,如果它是代号。 – Rory