我有一个由一些示例制作的宏,用于将所有其他工作表中的值复制到名为“摘要”的工作表中。值范围从 A 列到 M 以及从第 14 行到最后。我是 vba 新手,不知道如何修改此代码,因此它只会粘贴值。
Sub copy_info()
Dim i As Long, j As Long, lastRow As Long
Dim sh As Worksheet
With Sheets("Summary")
End With
j = 14
For Each sh In ActiveWorkbook.Sheets
If sh.Name <> "Summary" Then
lastRow = sh.Cells(sh.Rows.Count, "B").End(xlUp).Row
For i = 14 To lastRow
If sh.Range("H" & i) > 0 Then
sh.Range("A" & i & ":M" & i).Copy Destination:=Worksheets("Summary").Range("A" & j)
Sheets("Summary").Range("M" & j) = sh.Name
j = j + 1
End If
Next i
End If
Next sh
Sheets("Summary").Columns("A:M").AutoFit
End Sub
最佳答案
更改此行:
sh.Range("A" & i & ":M" & i).Copy Destination:=Worksheets("Summary").Range("A" & j)
到 2 行:
sh.Range("A" & i & ":M" & i).Copy
Worksheets("Summary").Range("A" & j).PasteSpecial xlPasteValues
或者,你可以写
Worksheets("Summary").Range("A" & j ":M" & j).Value = sh.Range("A" & i & ":M" & i).Value
关于excel - VBA 从其他工作表复制并粘贴为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34728686/