VBA嵌套如果是多个文档

时间:2013-05-03 14:35:40

标签: excel vba if-statement nested

好的,所以我觉得我的编码很接近,但是我不在那里。

我想要做的是看看B.offset(0,3)列中的工作簿A以及=“RF”的每个值我想要检查B列中工作簿B中的值。 offset(0,3)=“RF” 。 如果工作簿B值不是“RF”,我希望将每个实例的工作簿A列B中的值粘贴到同一目的地的工作簿C中(例如:b4到b4)

如果工作簿B值为“RF”,我希望excel查看列B.offset(0,11)中的值对于工作簿A和B.对于工作簿A列B.offset(0,11)的每个实例)>工作簿B列B.offset(0,11)我想将工作簿A列的值发布到同一目的地。 (我没有开始第二部分,因为代码已经搞砸了,但下面是我的代码)

如果您需要更多信息,请告诉我们,并感谢您的帮助。 (把我的代码拿出来因为它没有发布希望这有效)

1 个答案:

答案 0 :(得分:0)

我在理解数据组织方面遇到了一些麻烦。在Excel术语中,WorkBook是工作表的集合,并作为Excel文件存在。我假设你使用三个Excel文件。您对offset的使用与offset(range,row,col)的语法不匹配。您是否对每行数据执行了这组评估 - 使用WorkBook A,B列作为主数据?
这是我理解的算法:

For each row in WorkbookA.ColB(offset 3) 
    if workbookA.colB(offset 3).value = "RF" then
       If workbookB.colB(offset 3).value <> "RF" then
           workbookC.colB(offset 3).value = workbookA.colB(offset 3).value
       ELSE
           Avar = workbookA.colB(offset 11).value
           Bvar = workbookB.colB(offset 11).value
           if Avar > Bvar Then
               workbookC.colB(offset 11).value = Avar
           End if
       end if
    end if
Next row

因此,工作簿C有可能每行更新0-1列。使用3个工作簿/文件,我将代码放在WorkBook A中。将工作簿A中的row,col3Data和col 11数据捕获到User-Defined-Type数组中,其中行对应于数组索引。结构将包括Acol3Data,Acol11Data,Bcol3Data,Bcol11Data。 将工作表A数据加载到数组后,在WorkBook B上打开Excel对象,使用数组的索引加载Bcol3Data和Bcol11Data。关闭WorkBook B.打开工作簿C.从数组顶部开始,为每个索引值完成算法。您可以更轻松地使用objSheet.cells(i,3).value而不是offset语句。我是行,3是列。