VBA仅将列公式和粘贴公式 - 而不是值 - 粘贴到下一列

时间:2017-05-18 14:59:08

标签: excel vba excel-vba

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

1 个答案:

答案 0 :(得分:0)

试试这个简单的宏,让我知道它是否有效,

Sub Copy_Column_Formulas_NOvalues()
Dim i As Long, j As Long
For i = 1 To Sheets("Sheet3").Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, 2).HasFormula Then
   Cells(i, 3) = Cells(i, 2).Formula
End If
Next i
End Sub

根据您的需要更改Sheet3名称。