【发布时间】:2016-02-26 19:28:47
【问题描述】:
我正在尝试将数据从一个工作表复制到工作簿中的另一个空白工作表。它有三列,我想在其中搜索特定的“单位”值,然后将具有相似“单位”值的所有记录复制到具有相似列结构的第二个工作表中。
**Doc_number** **Doc_version** **Unit**
43449 01 D013-LAG R
43450 02 D013-LAG R
43451 01 D013-DAMP
43452 02 D013-DAMP
如果我提供 D013-LAG R 作为输入值,输出应该是这样的;
**Doc_number** **Doc_version** **Unit**
43449 01 D013-LAG R
43450 02 D013-LAG R
我想将选定的列粘贴到 DELIVERY 表中,如果我将“Unit”值传递为“D03-LAG R”,那么 DELIVERY 文件中的输出应该如下所示;
Doc_version Unit
01 D013-LAG R
02 D013-LAG R
这更像是我想选择整行,然后将数据粘贴到另一个工作表到我想要的列。我不想按原样粘贴整行。
我在 VBA 方面没有太多经验,并且已经尝试过执行导致复制循环中遇到的最后一条记录的代码。需要你的建议。
Sub Row_Copy()
Dim sheet1 As Worksheet, sheet2 As Worksheet
Dim i As Integer, k As Integer
Dim Sheet1LR As Long, Sheet2LR As Long
Set sheet1 = Sheets("MASTER")
Set sheet2 = Sheets("DELIVERY")
Sheet1LR = Sheet1.Range("A" & Rows.Count).End(xlUp).Row + 1
Sheet2LR = Sheet2.Range("A" & Rows.Count).End(xlUp).Row + 1
i = 2
k = Sheet2LR
Do Until i = Sheet1LR
If Trim(sheet1.Cells(i, 26).Value) = "D013-LAG R" Then
With sheet1
.Range(.Cells(i, 1), .Cells(i, 26)).Copy
End With
With sheet2
.Cells(k, 1).PasteSpecial
.Cells(k, 1).Offset(1, 0).PasteSpecial
End With
End If
k = k + 1
i = i + 1
Loop
MsgBox (Complete)
ActiveWorkbook.Save
Application.ScreenUpdating = False
End Sub
这是我正在使用的最新代码;
Sub CommandButton1_Click()
Dim LSearchRow As Long
Dim LCopyToRow As Long
Dim CopyFromSht As Worksheet
Dim CopyToSht As Worksheet
Dim LCnt As Long
On Error GoTo Err_Execute
Set CopyFromSht = Workbooks("TestRow.xlsm").Sheets("MASTER")
Set CopyToSht = Workbooks("TestRow.xlsm").Sheets("DELIVERY")
With CopyFromSht
'Start search in row 4
LSearchRow = .Range("A" & Rows.Count).End(xlUp).Row
'Start copying data to row 2 in Sheet2 (row counter variable)
LCopyToRow = 2
For LCnt = 2 To LSearchRow
'If value in column Z = "Unit as needed", copy entire row to Sheet2
If .Range("Z" & LCnt).Value = "D013-LAG R" Then
'Select row in Sheet1 to copy
.Rows(LCnt).Copy Destination:=CopyToSht.Rows(LCopyToRow)
'Move counter to next row
LCopyToRow = LCopyToRow + 1
End If
Next LCnt
End With
【问题讨论】:
-
写出你目前尝试过的代码。
-
欢迎 Monty 加入 Stack Overflow。请看如何提问-stackoverflow.com/help/how-to-ask。 “搜索和研究”。 Excel中有很多关于复制数据的代码sn-ps,您可以从中学习。例如,合并数据stackoverflow.com/questions/6823009/… 并查找数据,例如stackoverflow.com/questions/32252879/…
-
嗨@besciualex 添加了我正在使用的代码。但由此我无法将所需的数据提取到交付工作表
-
你为什么不直接使用手动过滤器?
-
@Grade'Eh'Bacon 我已经简化了表格,例如,我无法获得我将在具有大量数据的较大表格中使用的逻辑。这就是为什么我不能使用手动过滤器。