【发布时间】:2017-05-18 14:59:08
【问题描述】:
VBA 仅复制列并将公式(而非值)粘贴到下一列
电子表格列 B 包含随机混合的值和公式。我想使用 VBA 将该列复制到下一列,并且只将公式(而不是值)复制到 C 列中。我能够使用以下 VBA 取得一些成功,但是它将 B 之后的每一列复制到无穷大(我希望它在第一列之后停止复制)。
Sub Copy_Column_Formulas_NOvalues()
'
' Copy_Column_Formulas_NOvalues Macro
'
Dim oSheet As Worksheet
Dim rng As Range
Dim cel As Range
Set oSheet = Sheets("Sheet1")
With oSheet
Set rng = .Range(.Range("B1"), .Range("B" & .Rows.Count).End(xlUp))
For Each cel In rng
If Left(cel.Formula, 1) = "=" Then
Range(cel.Offset(, 1), cel.Offset(, 1).End(xlToRight)).FormulaR1C1 = cel.FormulaR1C1
End If
Next cel
End With
End Sub
【问题讨论】:
-
删除
.End(xlToRight)。其实把Range(cel.Offset(, 1), cel.Offset(, 1).End(xlToRight))改成cel.Offset(,1)