0

我有一些 VBA 代码,我想将公式复制到使用R1C1. 不幸的是,我在倒数第二行收到以下错误:
Runtime error '1004': Application-defined or object-defined error.

Dim pct As Single
pct = 1

With ThisWorkbook.Sheets("Data").UsedRange
    Dim lastR As Long
    lastR = .Rows.Count 
    Dim lastC As String
    lastC = col_letter(.Columns.Count)
End With

With ThisWorkbook.Sheets("Calculations")
    .Range("A1:" & lastC & 1).Value = 100
==> .Range("A2:" & lastC & lastR + 1).FormulaR1C1 = "=R[-1]C*(1+" & pct / 100 & "*'Data'!R[-1]C"
End With

我在这里做错了什么?

4

2 回答 2

2

您在公式中缺少括号 - 也许

"=R[-1]C*(1+" & pct / 100 & ")*'Data'!R[-1]C"
于 2013-06-10T10:50:52.103 回答
1

我认为您正在运行非英语版本的 Excel/Office。因此可能存在数字分隔标记的问题。它需要. (dot)在定义为字符串的函数中使用,然后传递formulaR1C1 property给 Excel。然后将其转换为, (comma)将函数放入excel单元格时所需的内容。因此,这条线对我有用,没有错误:

....=Replace("=R[-1]C*(1+" & pct / 100 & ")*Data!R[-1]C", ",", ".")

还有一件事,我删除'' (single quotation marks)了工作表名称。

于 2013-06-10T11:19:43.310 回答