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