Excel 使用VBA在单元格中输入公式

Excel 使用VBA在单元格中输入公式,excel,vba,Excel,Vba,好的,这很可能是一些现有问题的组合,但这里是 我需要将数据从一张图纸复制到另一张图纸,然后更改一些数据,然后在末尾添加一列,如下所示: =if(G2="+",1,0) 然后需要遍历整个数据集,但行数会有所不同 是否有一种方法可以使此公式显示在包含数据的每一行旁边,而不再使用vba?下面是一个示例,其中公式列为columnH Sub qwertyu() Dim N As Long N = Cells(Rows.Count, "G").End(xlUp).Row Dim x

好的,这很可能是一些现有问题的组合,但这里是

我需要将数据从一张图纸复制到另一张图纸,然后更改一些数据,然后在末尾添加一列,如下所示:

=if(G2="+",1,0)
然后需要遍历整个数据集,但行数会有所不同


是否有一种方法可以使此公式显示在包含数据的每一行旁边,而不再使用vba?

下面是一个示例,其中公式列为columnH

Sub qwertyu()
    Dim N As Long
    N = Cells(Rows.Count, "G").End(xlUp).Row
    Dim xCol As String
    xCol = "H"
    Range(xCol & 2 & ":" & xCol & N).Formula = "=if(G2=""+"",1,0)"
End Sub
更改列ID以满足您的需要。

可以

Sub ABC()
Dim ws As Worksheet
Dim Lastrow As Long

Set ws = ThisWorkbook.Worksheets("Sheet1") ' change to relevant sheet

With ws
Lastrow = .Range("A" & .Rows.Count).End(xlUp).Row ' change "A" to correct column

.Range("A1:A" & Lastrow).Formula = "=if(G2="+",1,0)" 'change "A1:A" to correct column

' convert formulas to values if you like:
.Range("A1:A" & Lastrow).Value = .Range("A1:A" & Lastrow).Value 'again change "A1:A" to correct column
End With

End Sub