VBA代码在不同工作簿中的工作方式不同
问题描述:
您好,我有一个简单的VBA代码,它复制一列并将其粘贴到另一列,而不包含原始列中的空单元格。它在我写的woorkbook中工作。但是我把它复制到另一个,我需要它的地方。它不止一次复制需要的单元格,并将整个列填入这些值。VBA代码在不同工作簿中的工作方式不同
Range("f5:f2500").ClearContents
With Range("d5:d2500")
.Offset(, 0).SpecialCells(xlCellTypeFormulas, _
xlNumbers).Copy
.Offset(, 2).PasteSpecial skipblanks:=True, _
Paste:=xlPasteValues
End With
答
的Sub
下面将复制式(与细胞的值)从塔d,并粘贴它们的值F列,来自Cell“F5”开始和向下(无空白)。
Sub
收到Worksheet.Name
作为参数,因此里面的所有Range
都完全符合该特定工作表的名称。
代码
Option Explicit
Sub CopyColumnWOBlanks(wsName As String)
With Worksheets(wsName)
.Range("F5:F" & .Cells(.Rows.Count, "F").End(xlUp).Row).ClearContents
.Range("D5:D" & .Cells(.Rows.Count, "D").End(xlUp).Row).SpecialCells(xlCellTypeFormulas, xlNumbers).Copy
.Range("F5").PasteSpecial Paste:=xlPasteValues, skipblanks:=True
End With
End Sub
下面这Main
子,只是为了测试,修改以满足您的需求。
Sub Main()
CopyColumnWOBlanks ("Sheet5") ' <-- change "Sheet5" to whatever worksheet you want the macro to run
End Sub