Excel VBA-将特定标题从图纸复制到其他图纸
我尝试复制具有以下单元格且值为“必填”的标题,但我的宏在第一个单元格处停止。 姓名电话号码无地点 强制性Excel VBA-将特定标题从图纸复制到其他图纸,excel,vba,Excel,Vba,我尝试复制具有以下单元格且值为“必填”的标题,但我的宏在第一个单元格处停止。 姓名电话号码无地点 强制性 Dim i As Long, j As Long, Lastrow1 As Long, Lastcol1 As Long Dim mandatory As String 'Lastrow1 = Sheets("sheet3").Range("A" & Rows.Count).End(xlUp).Row Lastcol1 = Sheets("sheet3").Cells(1 &a
Dim i As Long, j As Long, Lastrow1 As Long, Lastcol1 As Long
Dim mandatory As String
'Lastrow1 = Sheets("sheet3").Range("A" & Rows.Count).End(xlUp).Row
Lastcol1 = Sheets("sheet3").Cells(1 & Columns.Count).End(xlToLeft).Column
For i = 1 To Lastcol1
Sheets("sheet4").Activate
Lastcol2 = Sheets("sheet4").Cells(1 & Columns.Count).End(xlToLeft).Column
For j = 1 To Lastcol2
If Sheets("sheet3").Cells(2, i).Value = "mandatory" Then
Sheets("sheet3").Activate
Sheets("sheet3").Cells(i, "A").Copy
Sheets("sheet4").Activate
Sheets("sheet4").Cells(j, "A").Select
ActiveSheet.Paste
End If
Next j
Application.CutCopyMode = False
Next i
Sheets("sheet3").Activate
Sheets("sheet3").Range("A1").Select
End Sub
除了上述注释中所述的内容外,您还可以通过查找结尾的空单元格将j设置为列计数为0 使用以下命令:
Dim i As Long, j As Long, Lastrow1 As Long, Lastcol1 As Long
Lastcol1 = Sheets("sheet3").Cells(1 , Columns.count).End(xlToLeft).Column
For i = 1 To Lastcol1
j = Sheets("sheet4").Cells(1 , Columns.count).End(xlToLeft).Offset(, 1).Column
if j = 2 and Sheets("sheet4").Cells(1,j-1).value ="" then j=1
If ucase(Sheets("sheet3").Cells(2, i).Value) = "MANDATORY" Then
Sheets("sheet3").Cells(1, i).Copy Sheets("sheet4").Cells(1,j)
End If
Application.CutCopyMode = False
Next i
Sheets("sheet3").Range("A1").Select
通过一个单元格一个单元格地进行,而不是复制,可以使新单元格的值等于旧单元格的值
Sheets("sheet4").Cells(1,j).value = Sheets("sheet3").Cells(1, i).value
单元格(1,Columns.Count)
应该是单元格(1,Columns.Count)
。此外,您可能还想了解如何不使用。激活。这会减慢进程。@ScottCraner我认为它工作得更好,但它将sheet3中最后一个强制页眉放在sheet4中的单元格A1中,我认为宏只将页眉保存在第一个单元格中。所有要复制的页眉都保存在第一行或“A”列中?它们是从A1到F1的,其中A、B、D、E是强制页(“sheet3”).Cells(i,“A”).Copy
告诉它要复制的所有单元格都在第i行的“A”列中<代码>工作表(“sheet3”)。单元格(1,i)。Copy
将穿过与if语句匹配的第一行。谢谢,它起作用了,但是粘贴的标题从B开始column@java2dev是的,我忘了换第一个。我已经修好了code@java2dev如果它回答了您的问题,请将其标记为正确。非常感谢您的帮助