Excel 找到匹配项后,将行从一张工作表复制到宏中找到匹配项的行
我在MainDashboard上有一个由宏更新的表。它复制选定图纸中的数据并更新此主表。这是我的代码,但我被卡住了。我需要它: 循环浏览图纸列表中的每个图纸 循环遍历每张图纸上表格第一列中的每个值 检查这些ID是否在主仪表板表的第一列中 如果是,请复制该行上的所有内容,并将其粘贴到主仪表板表上找到该值的同一行上 如果否,则将其添加到行的底部 完成后,有一个MsgBox,上面写着,您已经修改了x个条目并添加了x个新条目Excel 找到匹配项后,将行从一张工作表复制到宏中找到匹配项的行,excel,vba,Excel,Vba,我在MainDashboard上有一个由宏更新的表。它复制选定图纸中的数据并更新此主表。这是我的代码,但我被卡住了。我需要它: 循环浏览图纸列表中的每个图纸 循环遍历每张图纸上表格第一列中的每个值 检查这些ID是否在主仪表板表的第一列中 如果是,请复制该行上的所有内容,并将其粘贴到主仪表板表上找到该值的同一行上 如果否,则将其添加到行的底部 完成后,有一个MsgBox,上面写着,您已经修改了x个条目并添加了x个新条目 Sub Update() Dim SheetList As Vari
Sub Update()
Dim SheetList As Variant
Dim x As Long
Dim TaskListTable As Range
Dim TaskList As ListObject
Dim SortColumn As Range
Dim TaskId As Integer
Dim LastRow As Range
Dim MDLastRow As Range
'What I want the Excel program to do before I start
With Application
.ScreenUpdating = False
.StatusBar = "Running..."
End With
'List Sheet Names into an Array Variable
SheetList = Array(S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14)
'Loop through list
For x = LBound(SheetList) To UBound(SheetList)
'Code will fail unless you activate the sheet first
SheetList(x).Activate
'Loop for b15 in column 1 down for every row to last row
LastRow = Range("B" & Rows.Count).End(xlUp).Row
MDLastRow = Range("B" & Rows.Count).End(xlUp).Row
For Each TaskID In Range("B15": LastRow)
If WorksheetFunction.Match(Range("B15:MDLastRow"), Then
SheetList(x).Range("TaskID").End(xlRight).Copy
'PASTE TO ENTIRE ROW WHERE THE MATCH WAS FOUND
End If
'Else add row to the bottom
SheetList(x).Range("TaskID").End(xlRight).Copy
MainDashboard.Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll
Next x
MainDashboard.Activate
'MsgBox
'You have Modified X tasks
'You have Added X tasks
'Sort the table by the latest Date
Set TaskList = MainDashboard.ListObjects("Task_List")
Set SortColumn = Range("Task_List[DATE]")
With TaskList.Sort
.SortFields.Clear
.SortFields.Add Key:=SortColumn, SortOn:=xlSortOnValues, Order:=xlAscending
.Header = xlYes
.Apply
End With
'What I want the Excel program to do after I have finished
With Application
.ScreenUpdating = True
.StatusBar = "Complete"
.CutCopyMode = False
End With
End Sub
“提前感谢”是我今天早些时候做的一个解决方案。不过这是一张工作表。它很容易测试。让我知道,如果这是你需要的,这样我就可以重写更多的工作表。在解决方案中,
Sheet1
是主要(目标)工作表。总是有助于解释您面临的具体问题。列出您希望发生的事情,并包含代码,而不解释代码的不足之处/原因,只会让我们做更多的工作…@vbasic208非常感谢!我想做什么就做什么。