【发布时间】:2015-09-23 21:18:45
【问题描述】:
请注意,尽管我一直在尝试(不成功?)学习,但我在 VBA 方面完全是个菜鸟。
如果“I”列包含某个字母(或短语),我正在尝试将 行 数据从一张表复制到另一张表。例如,我要复制的数据位于名为“Clients”的工作表上,如果 I 列包含字母“T”,那么我希望该数据自动导入到名为“Tax - Pending”的下一个工作表中但我有问题。如有必要,我还可以考虑将 I 列中的文本更改为更具描述性。我的数据从所有工作表的第 3 行开始(前两行是标题)。
Sub CopyRow()
Dim x As Long
Dim iCol As Integer
Dim MaxRowList As Long
Dim S As String
Set wsSource = Worksheets("Clients")
Set wsTarget = Worksheets("Tax - Pending")
iCol = 1
MaxRowList = wsSource.Cells(Rows.Count, iCol).End(xlUp).Row
For x = MaxRowList To 1 Step -1
S = wsSource.Cells(x, 1)
If S = "T" Then
AfterLastTarget = wsTarget.Cells(Rows.Count, 1).End(xlUp).Row + 1
wsSource.Rows(x).Copy
wsTarget.Rows(AfterLastTarget).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsSource.Rows(x).Delete
End If
Next
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
快速浏览一下就知道您需要
S = wsSource.Cells(x, 9)列 I。 -
您需要格式化吗?确定要删除行吗?
-
只是一个想法,因为您自称是“菜鸟”,但我想知道您是否知道 Excel 的自动过滤器,它可以让您在同一张纸上过滤这些记录无需任何 VBA。但也许您需要将它们放在单独的工作表上,在这种情况下......继续。