0

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

前一个月是另一本工作簿,但我认为我可以将该表设为命名范围,并在我的公式中引用该范围。在这一点上,我们到达了我的问题。在我的 for each 循环中,我有“for each cell in range(X)”,但它指的是第一个工作簿(本月而不是上个月),所以我不知道如何在我的“if 语句”中引用第二个工作簿(如果 wbkA range("A").offset(0, 1).value = to "S" and wbkB range("A").offset(0, 1) = "S")

我想做的还有第三部分,但我很确定我是否能弄清楚是否有人可以帮助我完成这部分。

如果我的问题模棱两可,请告诉我,我会尽力详细说明。提前感谢您的帮助!

4

2 回答 2

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 
于 2013-05-06T18:07:04.027 回答
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)

你也可以检查他们的名字来确定。

于 2013-05-06T01:01:29.167 回答