Excel 将工作表声明为变量

Excel 将工作表声明为变量,excel,vba,Excel,Vba,我试图将特定的工作表声明为变量 我收到一个运行时错误9 子测试() 将ws设置为工作表 设置ws=工作簿(“C:\Users\mturkenburg\OneDrive-WHISPIR\WHISPIR\Desktop\IT Learnings\VBA\初学者完整的VBA Excel VBA课程.xlsm”)。工作表(“测试表”) 端接头 您需要打开工作簿。下面是一个示例,我还声明了一个工作簿变量,以便在完成工作表后更容易执行工作簿操作 子测试() 将wb设置为工作簿 将ws设置为工作表 '工作簿文

我试图将特定的工作表声明为变量

我收到一个运行时错误9

子测试()
将ws设置为工作表
设置ws=工作簿(“C:\Users\mturkenburg\OneDrive-WHISPIR\WHISPIR\Desktop\IT Learnings\VBA\初学者完整的VBA Excel VBA课程.xlsm”)。工作表(“测试表”)
端接头

您需要打开工作簿。下面是一个示例,我还声明了一个工作簿变量,以便在完成工作表后更容易执行工作簿操作

子测试()
将wb设置为工作簿
将ws设置为工作表
'工作簿文件路径字符串应该是另一个
'您正在尝试打开(不是当前工作簿)
设置wb=Workbooks.Open(“C:\Users\mturkenburg\OneDrive-WHISPIR\WHISPIR\Desktop\IT Learnings\VBA\VBA初学者完整的VBA Excel VBA课程.xlsm”)
'如果您试图访问工作表,请使用以下命令
'在工作簿中
'Set ws=ThisWorkbook.Worksheets(“测试表”)
设置ws=wb.工作表(“测试表”)
“用工作表做你的事
Debug.Print ws.Name
'关闭工作簿
wb.关闭错误
端接头
下面是另一个示例,如果您打开了多个工作簿,并且希望访问其中一个

子测试()
将ws设置为工作表
'仅在工作簿函数中使用工作簿的名称
设置ws=工作簿(“初学者完整的VBA Excel VBA课程”)。工作表(“测试表”)
“用工作表做你自己的事
Debug.Print ws.Name
端接头

工作簿是否打开?如果没有,则需要执行workbook.open。另一方面,只需使用
Set ws=thiswoolk.Sheets(“Sheet1”)
Thank——这很有效。知道为什么说明位置会导致问题吗?@Mturks83,如果您试图访问的工作表在当前工作簿中,则不需要打开工作簿,因为它已经打开,并且您的代码在其中。此工作簿提供代码所在工作簿的句柄。