我有以下代码,我希望它在25个其他工作簿中运行,而不是重复代码25次,因为每个工作表有没有办法让它循环?
有人可以帮忙吗?
Sub DeleteEmptyRows()
Dim ws As Worksheet
Dim strSearch As String
Dim lRow As Long
strSearch = "ressort"
Set ws = Sheets("01,02,03")
With ws
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
With .Range("A1:A" & lRow)
.AutoFilter Field:=1, Criteria1:="=*" & strSearch & "*"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ActiveSheet.Range("$A$1:$P$65536").AutoFilter Field:=1
End With
End Sub
Run Code Online (Sandbox Code Playgroud) 我面临以下挑战:我有一张Excel表格,其中包含A栏的值(例如,C Klasse,A Klasse,Golf,Astra").
在第二张表格中,我有2列A和B,其中包含以下信息:A列,梅赛德斯,欧宝,大众等"和B列我有以下内容,C Klasse,A Klasse,Golf,Astra"(与表1列A)相同的信息.
目标:从工作表2列B中的第1页,A列中找到值 - >从工作表2列A复制值 - >粘贴到工作表1列M.
示例:A2 = C Klasse - >查找,在表2中找到C Klasse' - >在B42中找到,C Klasse' - >从A42复制内容,梅赛德斯' - >粘贴M2.
这是我提出的代码,我刚开始这样,请耐心等待:
Range("A2").Select
Selection.Copy
Sheets("Form2").Select
Cells.Find(What:=Range("A2"), After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
Range("A193").Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Form1").Select
Range("M2").Select
ActiveSheet.Paste
Run Code Online (Sandbox Code Playgroud)

是否可以简化以下代码?有什么方法可以缩短它:
' Paste last value
Range(Cells(LastRowP + 1, 10), Cells(LastRowP + 1, 10)).Select
Selection.Cut
Range(Cells(LastRowP + 1, 9), Cells(LastRowP + 1, 9)).Select
ActiveSheet.Paste
Range(Cells(LastRowP + 2, 10), Cells(LastRowP + 2, 10)).Select
Selection.Cut
Range(Cells(LastRowP + 2, 9), Cells(LastRowP + 2, 9)).Select
ActiveSheet.Paste
Range(Cells(LastRowP + 3, 10), Cells(LastRowP + 3, 10)).Select
Selection.Cut
Range(Cells(LastRowP + 3, 9), Cells(LastRowP + 3, 9)).Select
ActiveSheet.Paste
Run Code Online (Sandbox Code Playgroud)
这一直持续到+20.我是VBA和编码的新手,所以请耐心等我:)