因此,我想要做的是在工作簿A中有一个打开工作簿B和C的宏。之后它会经过工作簿B和C的A列,并且两个值相等的地方需要并将其粘贴到工作簿A的列A中。比较两个单独的文档VBA
我已经编写了下面的代码,但是您认为使用另一种方式更容易,请随时编写自己的代码。谢谢你,请帮我:)
Sub ReportCompareAlta()
'
' ReportCompareAlta Macro
' Adds instances where column D is "ALTA"
Dim varSheetA As Variant
Dim varSheetB As Variant
Dim varSheetC As Variant
Dim StrValue As Variant
Dim strRangeToCheck As String
Dim iRow As Long
Dim iCol As Long
Dim WbkA As Workbook
Dim WbkB As Workbook
Dim WbkC As Workbook
Dim counter As Long
Set WbkA = Workbooks.Open(Filename:="G:\Reporting\AH_MISSE_FEB2013.xls")
Set WbkB = Workbooks.Open(Filename:="G:\Reporting\AH_MISSE_MAR2013.xls")
Set WbkC = Workbooks.Open(Filename:="G:\Reporting\ReportCompare.xls")
Set varSheetA = WbkA.Worksheets("LocalesMallContratos")
Set varSheetB = WbkB.Worksheets("LocalesMallContratos")
Set varSheetC = WbkC.Worksheets("Sheet1")
strRangeToCheck = "A1:IV65536"
Debug.Print Now
varSheetA = WbkC.Worksheets("Sheet2").Range(strRangeToCheck) 'may be confusing code here
varSheetB = WbkC.Worksheets("Sheet3").Range(strRangeToCheck) 'may be confusing code here
Debug.Print Now
counter = 0
For iRow = LBound(varSheetA, 1) To UBound(varSheetA, 1)
If varSheetB(iRow, "B") = varSheetA(iRow, "B") & varSheetB(iRow, "B") <> "GERENCIA" & varSheetB(iRow, "B").Value <> "" & varSheetB(iRow, "D") = "ALTA" Then
StrValue = ""
varSheetB.Range("iRow:B").Select
Selection = StrValue
ActiveSheet = varSheetC
Range("A1").Select
Selection.Offset(counter, 0).Value = StrValue
counter = counter - 1
Else
MsgBox ("Done")
End If
Next iRow
End Sub
那么你的代码是做什么的?它工作吗?如果没有,什么不起作用?任何错误消息?我在这里没有看到问题。 – 2013-05-02 10:47:06
@OlleSjögren嘿抱歉打扰你,但当我发布这个问题时,我对这个网站是新手,因此我不知道这些协议,我试图删除这个问题,然后重新开始,之后我发现有编辑,所以我的编辑在我从未编辑或关闭过的另一个线程中得到了回答。我想知道你是否可以取消我的投票权,这样我就可以回到成为一名直率和有贡献的成员的道路上。请和谢谢 – 2013-05-30 21:18:30
对不起,downvote不是从我这里,所以我不能做任何事情。我可以给你一个upvote,但为了努力做得更好。 :) – 2013-05-30 22:15:11