Vba 将数据从一个excel工作簿复制到另一个工作簿
例如,如果我想从工作簿1工作表1复制数据(“B1:B8”)并将其粘贴到另一个工作簿工作表1的(“D1:D8”)中,但这必须通过引用或比较工作簿1的单元格(A1:A8)来完成,并且单元格(C1:C8)只有相同的值,然后粘贴,否则跳过或不执行任何操作 例:我排好了第一张书单 COL A COL B app yes conf pass gif no pic fail bit yes map yes conf yes bit noVba 将数据从一个excel工作簿复制到另一个工作簿,vba,excel,Vba,Excel,例如,如果我想从工作簿1工作表1复制数据(“B1:B8”)并将其粘贴到另一个工作簿工作表1的(“D1:D8”)中,但这必须通过引用或比较工作簿1的单元格(A1:A8)来完成,并且单元格(C1:C8)只有相同的值,然后粘贴,否则跳过或不执行任何操作 例:我排好了第一张书单 COL A COL B app yes conf pass gif no pic fail bit yes map yes conf yes bit no 看起来你
看起来你想从一个范围看另一个范围?如果是这样,您可以使用类似于以下内容的方法,对照A列和B列中的主值查找C列中的每个值:
Sub LookupRange()
On Error Resume Next
For i = 1 To 8
ActiveSheet.Range("D" & i) = _
Application.WorksheetFunction.VLookup( _
ActiveSheet.Range("C" & i), _
ActiveSheet.Range("A1:B8"), _
2, _
False)
Next i
End Sub
它将在单元格C1..C8中循环,并在单元格A1..A8中查找每个值。如果找到匹配项,则会将相应的值复制到D列
对于上面的示例,您将得到:
你所需要做的就是修改代码,使之与单独的工作表一起工作。这句话让我头疼:
因此,在D列中,我必须只粘贴A列和C列相等的值,如果它们不相等,请跳过或不粘贴D列中的任何内容。
对不起,在D列(“D1:D8”)中粘贴工作簿1第1页B列(“B1:B8”)中的值只有当A列(工作簿1第1页)等于C列(工作簿2第1页)时,如果它们不相等,则不粘贴任何内容
Sub CopyInput2Output()
Dim wbkSRC As Workbook
Dim wbkDES As Workbook
Dim strNameSheetSRC As String
Dim strNameSheetDES As String
'strSrcFile = "C:\src.xls"
'strDesFile = "C:\des.xls"
Set wbkSRC = Workbooks.Open(strSrcFile)
Set wbkDES = Workbooks.Open(strDesFile)
'Set wbkSRC = ThisWorkbook
'Set wbkDES = ThisWorkbook
strNameSheetSRC = 1 ' "input"
strNameSheetDES = 1 ' "output"
' your selection : Sheets(1)
wbkSRC.Worksheets(strNameSheetSRC).Range("A1:A8").Copy
' your selection : Sheets(1)
With wbkDES.Worksheets(strNameSheetSRC)
Range("C1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End With
MsgBox ("Just a check : CopyInput2Output()")
End Sub
Sub LookupRange()
On Error Resume Next
For i = 1 To 8
ActiveSheet.Range("D" & i) = _
Application.WorksheetFunction.VLookup( _
ActiveSheet.Range("C" & i), _
ActiveSheet.Range("A1:B8"), _
2, _
False)
Next i
End Sub
Sub CopyInput2Output()
Dim wbkSRC As Workbook
Dim wbkDES As Workbook
Dim strNameSheetSRC As String
Dim strNameSheetDES As String
'strSrcFile = "C:\src.xls"
'strDesFile = "C:\des.xls"
Set wbkSRC = Workbooks.Open(strSrcFile)
Set wbkDES = Workbooks.Open(strDesFile)
'Set wbkSRC = ThisWorkbook
'Set wbkDES = ThisWorkbook
strNameSheetSRC = 1 ' "input"
strNameSheetDES = 1 ' "output"
' your selection : Sheets(1)
wbkSRC.Worksheets(strNameSheetSRC).Range("A1:A8").Copy
' your selection : Sheets(1)
With wbkDES.Worksheets(strNameSheetSRC)
Range("C1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End With
MsgBox ("Just a check : CopyInput2Output()")
End Sub