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 

我需要了解我为什么不能只需声明这些工作簿并以这种方式指定工作表所属的工作簿。我还想知道在复制或粘贴数据时无需“选择”每个工作簿的情况下引用和调暗工作簿的理想方法。

+2

'Workbooks(wbDaily).Sheets(“Daily Pull”)。Range(“B23”)。Value' should just'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