Excel 使用IF条件在不同工作簿中从一个工作表复制到另一个工作表

Excel 使用IF条件在不同工作簿中从一个工作表复制到另一个工作表,excel,vba,Excel,Vba,我正在尝试将一行中的一个范围从一个工作表复制到不同工作簿中的另一个工作表,在列“a”中使用“如果”条件,例如 如果列“A”等于“H”,则从范围“B”到“DJ”从test.xls/worksheet1复制到test1.xls/worksheet1中的“A1” 否则,如果列“A”等于“D”,则从范围“B”到“C”从test.xls/worksheet1复制到test1.xls/worksheet1中的“A1” 我只成功地将第一个范围复制到test1.xls/worksheet1,但尝试了几种条件方法

我正在尝试将一行中的一个范围从一个工作表复制到不同工作簿中的另一个工作表,在列“a”中使用“如果”条件,例如

如果列“A”等于“H”,则从范围“B”到“DJ”从test.xls/worksheet1复制到test1.xls/worksheet1中的“A1” 否则,如果列“A”等于“D”,则从范围“B”到“C”从test.xls/worksheet1复制到test1.xls/worksheet1中的“A1”

我只成功地将第一个范围复制到test1.xls/worksheet1,但尝试了几种条件方法来执行第二个范围。我似乎做不到

我的代码:

`Sub OpenAndCopy()
 Dim wbCopy As Workbook
 Dim wsCopy As Worksheet

 Dim rngCopy As Range
 Dim wbPaste As Workbook
 Dim wsPaste As Worksheet
 Dim rngPaste As Range
 Dim lRow As Long
 Dim lCol As Long 

 Set wbCopy = Workbooks.Open("C:\TEMP\TEST.XLS") 'change path
 Set wsCopy = wbCopy.Worksheets("Sheet1")
 lRow = Cells(Rows.Count, 1).End(xlUp).Row
 lCol = Cells(1, Columns.Count).End(xlToLeft).Column
 Set rngCopy = wsCopy.Range("BK")

 Set wbPaste = Workbooks("TEST1.XLS")
 Set wsPaste = wbPaste.Worksheets("Sheet1") 'paste to different sheet?
 Set rngPaste = wsPaste.Range("A1") 'change this if needed

 rngCopy.Copy
 rngPaste.PasteSpecial
 wbCopy.Close

 End Sub`

感谢您对我所能提供的任何意见和帮助/帮助,以便插入正确的VBA,从而无误地完成操作。非常感谢。

您是否在几行中循环检查A列的内容?为什么您的代码引用BK?是的,我可能需要遍历几行来检查A列的内容。A列中只有2行-“H”和“D”。事实上,“BK”不是我列出的正确数字,它是“B:C”,抱歉在上面的评论中说得不对,BK实际上是A=“H”列的“B:DK”,A=“D”列的“B:C”。