将字符串插入VBA中的公式

时间:2019-06-27 10:31:29

标签: excel vba

我正在创建一段VBa代码,它将特定的公式插入到我的工作表中。由于该文件位于共享的保管箱中,因此我想使用字符串thisworkbook.path创建一个文件路径。尽管我无法在公式中使用此字符串。

需要粘贴的公式是一个SUMIF公式,它从我的工作簿的另一张纸中获取数据,尽管当我尝试插入该公式时,它一直在询问文件目录

Sub Monthly_OTB_update()
'
Dim I As Long
Dim J As Integer
Dim H As Integer
Dim A As String
Dim B As String
Dim C As String
Dim D As String
Dim E As String


A = ThisWorkbook.Path
B = "2019"
C = "Monthly OTB 2019"
D = A & B
E = A & C



Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayStatusBar = False

    'Go to Last used date and select the next cell
    Sheets("Monthly OTB 2019").Select
    Range("E2").Select
    Selection.End(xlToRight).Select
    ActiveCell.Offset(0, 1).Select

    For I = 1 To 12

    'Fill selection with date and move 1 down
    ActiveCell.FormulaR1C1 = "=TODAY()"
    ActiveCell.Offset(1, 0).Select

        'insert formula to retrieve data
        ActiveCell.FormulaR1C1 = _
           "=SUMIFS("" & D & ""!R4C5:R100000C5,OTB!R4C2:R100000C5,"" & E         & ""!RC1)"

我没有包含完整的代码,因为剩下的只是重复此处代码的内容。以及循环和Sub的结尾。

弹出的错误是应用程序或对象定义的错误。

2 个答案:

答案 0 :(得分:0)

当您将带有书名的文件夹路径或该文件夹内的任何其他路径加入文件夹时,您需要使用Application.PathSeparator作为两者之间的中间字符串。我建议您在将公式分配给单元格之前使用MsgBox(D),以便检查路径是否正确。

答案 1 :(得分:0)

我将检查以下几行:

也许D = A & "\" & BE = A & "\" & C会有所帮助。 (Application.Pathseparator是正确的选择,而不是“ \”,但这不是大问题。)

也许是...""!R1C1)" ...而不是...""!RC1)"

在SUMIFS之后,可能引号过多。将此操作视为粘贴零件的简单字符串操作。结果必须是语法正确的命令。我会在没有前导等号的情况下进行测试,并检查其是否正确。