对于这个问题的大范围和我可能创建的任何模糊情况,我都会提前道歉。我想要创建一个宏,它可以在表格中生成一个宏,并且如果在该行的不同列中满足特定条件而将另一个单元格值复制到另一个表中的表中。Excel VBA:将表格中的单元格值复制到另一张表上的表格,条件为
基本上,如果条件等于表A中列C中的X,则将表A中列B的数字复制到表B中的列B.存在2k +行。表A中的列C始终为空或等于X,并且表A中的列B从不为空,直到列表结束。表B中的列B是空白的,并且行数将由从表A复制到它的行的数量确定。
我确定这将需要一个循环,但是对于VBA来说是新的,我是不确定我需要哪种循环类型以及循环逻辑应该如何查看。我怀疑Do Until是最容易的,因为表A中没有空白,直到列表结尾。目前为止我的最佳猜测:
Dim wsPAPS As Range
Dim wsPAVA As Range
Dim wsVNPN As Range
Dim wkATTR As Workbook
Set wkATTR = Workbooks("PARCEL_ATTR_MACRO-TEST.xlsm")
Set wsPAPS = Sheets("PARCEL_ATTR_BASE").Range("PARCELSTAT")
Set wsPAVA = Sheets("PARCEL_ATTR_BASE").Range("APO_VA_Properties_Vacant_Abandoned")
Set wsVNPN = Sheets("VA_NAME").Range("L1_PARCEL_NBR")
Do
If wsPAVA = "Vacant/Abandoned" Then
wsVNPN = wsPAPS
End IF
Loop Until wsPAPS = ""
请注意,此代码实际上并不工作;我被告知我有一个没有做的循环,不知道为什么。
我会非常感谢任何帮助。谢谢,所有!
UPDATE带有Range变量的意图是试图使引用特定列变得容易,但我得到了一个应用程序定义或对象定义的错误。
您需要使用DO WHILE(条件),然后在最后说,“循环” http://www.excelfunctions.net/VBA-Loops.html – peege 2014-12-02 23:41:16