循环多个范围

时间:2013-05-05 21:01:57

标签: excel vba loops excel-vba range

好的,所以我正在尝试为每个循环执行多个范围的循环。为了更好地解释它,我希望excel遍历一列合同名称,以及本月签署的每个合同(在合同列右侧的列中用“S”表示)我想检查它是否是也表示在前一个月签署。

前一个月是一个不同的工作簿,但我认为我可以让该表成为一个命名范围,在我的公式中引用它。在这一点上,我们到达了我的问题。在我的每个循环中,我有“对于范围内的每个单元格(X)”但是指的是第一个工作簿(本月而不是上个月)所以我不知道如何在我的“if语句”中引用第二个工作簿(如果wbkA范围(“A”)。偏移量(0,1).value =到“S”和wbkB范围(“A”)。偏移量(0,1)=“S”)

我想要做的第三部分,但我很确定如果有人可以帮我解决这个问题,我能否弄明白。

如果我的问题含糊不清,请告诉我,我会尽力详细说明。在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

如果关闭,您可以从Application.Workbooks(index or name)Application.Workbooks.Open(...)访问不同的工作簿。

所以:

Dim wbkA as Workbook 
Dim wbkB as Workbook

'If both are open being A the first and B the second:
Set wbkA = Application.Workbooks(1)
Set wbkB = Application.Workbooks(2)

您也可以检查他们的名字。

答案 1 :(得分:0)

将item()用于两个工作簿之一:

Set objBook1 = Workbooks("April.xls")
Set objSheet1 = objBook1.Sheets("Sheet1")
Set rangeInBook1 = objSheet1.Range("A1:A5")

Set objBook2 = Workbooks("May.xls")
Set objSheet2 = objBook2.Sheets("Sheet1")
Set rangeInBook2 = objSheet2.Range("A1:A5")

book2Index = 1
For Each objRng In rangeInBook1
    itemFromBook1 = objRng.Value
    itemFromBook2 = rangeInBook2.Item(book2Index)
    book2Index = book2Index + 1
Next 
相关问题