在细胞与VBA输入公式[关闭]

问题描述 投票:0回答:1

我试图把一个公式插入我的表。

我上线cells(2,i).formulaR1C1虽然我已经记录了这个公式的工作,并把与记录错误1004。

“克利夫斯1”至“5克利夫斯”是表中的标题。为了测试此代码创建一个标题表中调用克利夫斯1至5克里夫斯。

enter image description here

Sub formula()

    Dim i As Long, ce As String

    For i = 1 To 10
        ce = CStr(Cells(1, i).Value)
        Cells(2, i).FormulaR1C1 = "=IF(OR(MID([@[CLEVES 1]],1,2)=""" & ce & """,MID([@[CLEVES 2]],1,2)=""" & ce & """,MID([@[CLEVES 3]],1,2)=""" & ce & """,MID([@[CLEVES 4]],1,2)=""" & ce & """,MID([@[CLEVES 5]],1,2)=""" & ce & """),& ce &,"""")"
    Next

End Sub
excel vba
1个回答
0
投票

您需要设置工作表名称代入公式

= IF(OR(MID([”&SHEETNAME& “!@ [克利夫斯1]],1,2)=” “”

例如。

我做了Sheet2的桌子,这工作确定:

 Sub formula()
    Dim i As Long
    Dim ce As String
    Dim formulaString As String
    Dim ws As Worksheet
    Dim sheetName As String

    Set ws = Sheets("sheet2")

    sheetName = "Sheet2"

    For i = 7 To 17
            ce = CStr(Cells(1, i).Value)
            formulaString = Cells(2, i).FormulaR1C1 = "=IF(OR(MID([" & sheetName & "!@[CLEVES 1]],1,2)=""" _
            & ce & """,MID([" & sheetName & "!@[CLEVES 2]],1,2)=""" & ce & """,MID([" & sheetName & "!@[CLEVES 3]],1,2)=""" _
            & ce & """,MID([" & sheetName & "!@[CLEVES 4]],1,2)=""" & ce & """,MID([" & sheetName & "!@[CLEVES 5]],1,2)=""" & ce & """),& ce &,"""")"
            ws.Cells(2, i).FormulaR1C1 = formulaString
    Next
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.