Excel VBA类型不匹配错误13

时间:2016-07-15 18:36:26

标签: excel-vba excel-2013 vba excel

我是VBA的新手,我在使用多个工作簿时遇到了一些问题。我有一个功能齐全的代码,基本上只是在满足某些条件的情况下将数据从一个工作表传递到另一个工作表。

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

现在我遇到了各种各样的错误。

代码如下。

之前(工作)

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

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

1 个答案:

答案 0 :(得分:1)

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