Excel VBA类型不匹配错误13
问题描述:
我对VBA很陌生,而且一次处理多个工作簿时遇到了一些问题。我有一个功能完整的代码,基本上只是将数据从一个表单传输到另一个表单,并满足一定的条件。Excel VBA类型不匹配错误13
现在我试图更新代码从一个工作簿移动到另一个工作簿,因此我已经开始声明工作簿而不是仅引用表名称。
现在我收到各种错误。
代码如下。
前(工作)
Option Explicit
Sub TrendDataByDay()
'determine date of data pulled
Dim CurrentDate As String
CurrentDate = Sheets("Daily Pull").Range("B23").Value
(失败;现在用2个工作簿)后
Option Explicit
Sub TrendDataByDay()
Dim wbDaily, wbHistory As Workbook
'declare daily and history workbooks
Set wbDaily = ActiveWorkbook
Workbooks.Open Filename:="\\Daily Focus Metrics\Focus Metrics History by Facility.xlsm"
Set wbHistory = Application.Workbooks("Focus Metrics History by Facility.xlsm")
'determine date of data pulled
Dim CurrentDate As String
'error here!
CurrentDate = Workbooks(wbDaily).Sheets("Daily Pull").Range("B23").Value
我也试过:
CurrentDate = wbDaily.Sheets("Daily Pull").Range("B23").Value
我需要了解我为什么不能只需声明这些工作簿并以这种方式指定工作表所属的工作簿。我还想知道在复制或粘贴数据时无需“选择”每个工作簿的情况下引用和调暗工作簿的理想方法。
答
变化Workbooks(wbDaily)
到wbDaily
而且小记..不像VB.Net
Dim wbDaily, wbHistory As Workbook
相同
Dim wbDaily As Variant
Dim wbHistory As Workbook
,所以你可以把它改成
Dim wbDaily As Workbook, wbHistory As Workbook
+0
Thank you您的帮助!看来我已经尝试了wbDaily.etc的正确方法,但由于wbDaily的模糊声明,我遇到了问题。按照你的建议使用Dim可以做到这一点。 – Jon
'Workbooks(wbDaily).Sheets(“Daily Pull”)。Range(“B23”)。Value' should just'wbDaily.Sheets(“Daily Pull”)。Range(“B23”)。Value' –