Excel VBA 类型不匹配错误 13

Excel VBA Type Mismatch Error 13

我是 VBA 的新手,我在同时处理多个工作簿时遇到了一些问题。我有一个功能齐全的代码,基本上只是在满足特定条件的情况下从一个 sheet 获取数据到另一个

现在我正在尝试更新代码以从一个工作簿移动到另一个工作簿,因此我开始声明工作簿而不是仅仅引用 sheet 个名称。

现在我遇到了各种错误。

代码如下。

之前(工作)

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

我需要理解为什么我不能简单地声明这些工作簿并指定一个sheet所属的工作簿。我还想知道在复制或粘贴数据时无需 "select" 每个工作簿即可引用和调暗工作簿的理想方法。

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