当前位置: 首页 > 知识库问答 >
问题:

将数据从一个excel工作簿复制到另一个工作簿[重复]

慕逸仙
2023-03-14
COL A   COL B
app     yes
conf    pass
gif     no
pic     fail
bit     yes
map     yes
conf    yes
bit     no
COL C
app
conf
gif
pic
gif
pic
bit
gif

所以在COL D中,我必须只粘贴COL A和COL C相等的值,如果这些值不相等,则跳过或粘贴COL D中的任何东西

我写过类似这样的代码,但不幸的是它粘贴了一切!!

Sub Copy_range()
Dim x As Workbook
Dim y As Workbook
Dim rng As Range
Dim c As Range
Dim i As Long

Set x = ActiveWorkbook
Set y = Workbooks.Open(x.Sheets(1).Range("G1"))

Set rng = x.Sheets(1).Range("A1:A8")
Set c = y.Sheets(1).Range("C1:C8")

  For i = 1 To i + 1


 If x.Sheets(1).Range("A1:A8").End(xlUp).Row = y.Sheets(1).Range("C1:C8").End(xlUp).Row Then

 x.Sheets(1).Range("B1:B8").Copy
 y.Sheets(1).Range("D1:D8").PasteSpecial

 y.Close
 End If
Next

End Sub

共有1个答案

暨高洁
2023-03-14

看起来你想从一个范围看到另一个范围?如果是这样,您可以使用如下所示的方法来对照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。

对于上面的示例,您将得到:

 类似资料:
  • 我想将工作簿的一页(包括样式)复制到新的工作簿。 我尝试对所有单元格进行迭代 抛出java.lang.IllegalStateException:超出了单元格样式的最大数目。在.xls工作簿中最多可以定义4000个样式 抛出java.lang.IllegalArgumentException:此样式不属于提供的工作簿。是否尝试将样式从一个工作簿分配到另一个工作簿的单元格? 正确的样式复制方法是什么

  • 试图从当前工作簿“Create Report.xlsm”中复制工作表名称“Headings Explantions”,该工作簿打开到我要求打开的工作簿中,我得到了下标超出范围的错误

  • 我需要一个宏,它可以根据我选择的单元格从我所在的工作簿中复制整行。我已经可以这样做了,使用以下方法: 但是,我需要它将其(格式化和全部)粘贴到关闭的工作簿的第一个空行(基于B列)。R: \dasboards\wo。xlsm公司

  • 我有一本有工作表的工作簿。为了简单起见,假设我的工作簿有一个工作表。在我的工作表中,它被称为“SHEET1”,在单元格A1到A4中有数据。 我希望我的VBA代码做的是: 将工作簿“A”的第1行(或特别是单元格A1至A4)复制到范围变量“我的范围”中 创建一个新的工作簿,我们将此工作簿称为'B' 为工作簿'B'的默认“sheet1”指定一个新名称为“测试名称” 打开工作簿'B'(尽管我意识到VBA代

  • 我写了下面的代码,并不断地看到。我试图克服这个问题,但似乎没有任何效果。我正试图从一个工作簿复制整个工作表,并将其粘贴到另一个工作簿中:

  • 我在工作簿中的工作表上有一个按钮,工作簿中有一个数据透视表,名为“保修模板.xlsm”。我希望该按钮复制从A5开始的第一列数据,并将该列粘贴到另一个名为“QA Matrix Template.xlsm”的工作簿中。我希望复制的数据在列的最后一个空白行结束,我希望粘贴数据的范围也粘贴在从D12开始的第一个空白行上。 我得到下标错误:'1004',我不知道为什么。它与我的&变量有关。如果我设置静态范围