从第三本打开两个单独的Excel工作簿

时间:2019-04-19 04:27:58

标签: excel vba

我正在尝试使我每天要做的事情自动化,但我走得并不远。

我们每天从HR系统生成报告,然后将ID与 1)这两个星期我们正在处理的ID清单 2)我们上两周工作的ID列表 3)昨天发布的报告-这样,那些不在前两个列表中但昨天被某人捡到的报告都会被标记。

我正在单独的电子表格中编写此代码,以便每天保留该代码,并更新下载的电子表格。

我认为这很容易,但是距我写很多vba已有两年了。但是,无论我尝试什么,我似乎都无法读取第三个文件。

所有文件都已打开。

第一个文件是宏文件,它只允许选择其他文件。

第二个文件是来自HR系统的Excel文档。有时将“ Empl ID”作为从A2到A500的第一列。

第三个文件是Excel文档,其中详细说明了我们在此两周内正在使用的ID,并且第一列为“ Emplid”。

使用下面的代码,我无法运行第三个Excel文档,而我得到的是运行时错误9:下标超出范围。

如果我为Workbooks(txtMSR)添加手表,则可以在“工作表”中以“ Item1”的形式看到工作表“ MSR”,其名称为MSR。

任何帮助都将受到欢迎。

Dim txtWorkbook As String
Dim vLoop, vLoop2 As Integer
Dim vEID As String
Dim txtMSR As String
Dim txtWork2 As String

'Get workbook name less the .xls bit
'C13 has ps.xls in it

txtWorkbook = Left(Range("C13"), InStr(Range("C13"), ".xls") - 1)

'Next check who has the employees on this MSR
'Set counters to "zero"
vLoop = 2
vLoop2 = 2

'C7 has MSR Fortnight 20190419-20190502.xlsm in it   
txtMSR = Left(Range("C7"), InStr(Range("C7"), ".xlsm") - 1)

Do Until Workbooks(txtWorkbook).Sheets("ps").Range("A" & vLoop).Text = ""
    vPMKeyS = Workbooks(txtWorkbook).Sheets("ps").Range("A" & vLoop).Value
    ```
    'The line below produces the error.  
    ```
    Do Until Workbooks(txtMSR).Sheets("MSR").Range("A" & vLoop2).Text = ""
       If (vPMKeyS = Workbooks(txtMSR).Sheets("ps").Range("A" & vLoop2).Value) Then
            Workbooks(txtWorkbook).Sheets("ps").Range("N1").Text = "Y"
       End If
       vLoop2 = vLoop2 + 1
    Loop
    vLoop = vLoop + 1
Loop

0 个答案:

没有答案