/ / VBA列をコピーして式のみを貼り付け、値は貼り付けません - 次の列に貼り付けます - excel、vba、excel-vba

VBA列をコピーして、値ではなく次の列にのみ貼り付ける - 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

この単純なマクロを試して、うまくいくかどうかを教えてください。

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 あなたの必要性に従って名前を付けなさい。