将图表 sheet 设置为工作 sheet 变量
Set a chart sheet to a worksheet variable
我的代码停在以下行:
Dim wks As Worksheet
Set wks = ThisWorkbook.Sheets(vSheets(i, 1))
错误:
Run-time error 13, type mismatch
但是,在这条线上我可以输入:
? ThisWorkbook.Sheets(vSheets(i, 1)).Name
进入立即数window并得到结果
Cashf
很明显,工作表是根据名称 vSheets(i, 1) 找到的。为什么我不能将其设置为工作表? Cashf 是创建为工作表的图表。这些是与 Worksheet 不同类型的对象吗?
Sheets 是工作sheets 和图表的集合。图表和作品sheet是不同类型的对象。您应该将 wrk 定义为变体。
以下示例打印工作簿中的所有 sheet 名称及其类型
Dim s As Variant
For Each s In ThisWorkbook.Sheets
Debug.Print s.Name, TypeName(s)
Next
尝试使用 ThisWorkbook.Worksheets 而不是 ThisWorkbook.Sheets [如果您需要将变量作为工作表。]
如果不是,请尝试不声明类型或将其声明为 Variant。
Public 子主()
Dim ws
Set ws = ThisWorkbook.Sheets(1)
Debug.Print ws.Name, ws.Type
Set ws = ThisWorkbook.Sheets(2)
Debug.Print ws.Name, ws.Type
结束子
我的代码停在以下行:
Dim wks As Worksheet
Set wks = ThisWorkbook.Sheets(vSheets(i, 1))
错误:
Run-time error 13, type mismatch
但是,在这条线上我可以输入:
? ThisWorkbook.Sheets(vSheets(i, 1)).Name
进入立即数window并得到结果
Cashf
很明显,工作表是根据名称 vSheets(i, 1) 找到的。为什么我不能将其设置为工作表? Cashf 是创建为工作表的图表。这些是与 Worksheet 不同类型的对象吗?
Sheets 是工作sheets 和图表的集合。图表和作品sheet是不同类型的对象。您应该将 wrk 定义为变体。
以下示例打印工作簿中的所有 sheet 名称及其类型
Dim s As Variant
For Each s In ThisWorkbook.Sheets
Debug.Print s.Name, TypeName(s)
Next
尝试使用 ThisWorkbook.Worksheets 而不是 ThisWorkbook.Sheets [如果您需要将变量作为工作表。]
如果不是,请尝试不声明类型或将其声明为 Variant。
Public 子主()
Dim ws
Set ws = ThisWorkbook.Sheets(1)
Debug.Print ws.Name, ws.Type
Set ws = ThisWorkbook.Sheets(2)
Debug.Print ws.Name, ws.Type
结束子