Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带变量混乱的Excel 2010 VBA公式_Vba_Excel_Formula - Fatal编程技术网

带变量混乱的Excel 2010 VBA公式

带变量混乱的Excel 2010 VBA公式,vba,excel,formula,Vba,Excel,Formula,我有以下代码: LastLine = Range("C" & Rows.Count).End(xlUp).Row LastLine = "C" & LastLine Range(LastLine).Select ActiveCell.FormulaR1C1 = "=SUM(R4C3:R[-1]C)" Range("E13").FormulaR1C1 = "=if(R12C5 - " & LastLine & " <> 0,R12C5 - " &

我有以下代码:

LastLine = Range("C" & Rows.Count).End(xlUp).Row
LastLine = "C" & LastLine
Range(LastLine).Select
ActiveCell.FormulaR1C1 = "=SUM(R4C3:R[-1]C)"
Range("E13").FormulaR1C1 = "=if(R12C5 - " & LastLine & " <> 0,R12C5 - " & LastLine & ","""")"

它给了我一个错误

因为您使用的是R1C1符号,所以必须将CsomeRow转换为RsomeRowC3


因为您使用的是R1C1符号,所以必须将CsomeRow转换为RsomeRowC3


变量LastLine未键入,您可以在整个代码中更改其类型。首先,它是一个数字,即行的编号,然后将其指定为文本,字母C与行号组合,例如C3。接下来在R1C1引用中使用它,其中C3表示第3列,因此第一个LastLine赋值的行号将作为公式中的列结束

如果将变量暗显为特定类型,并且不会将A1表示法与R1C1混合使用,则代码会更干净

Sub test()
Dim LastLine As Long
Dim LastLineCell As String

LastLine = Range("C" & Rows.Count).End(xlUp).Row
LastLineCell = "C" & LastLine
Range(LastLineCell).Select
ActiveCell.FormulaR1C1 = "=SUM(R4C3:R[-1]C)"
Range("E13").FormulaR1C1 = "=if(R12C5 - R" & LastLine & "C26 <> 0,R12C5 - R" & LastLine & "C26,"""")"
End Sub

变量LastLine未键入,您可以在整个代码中更改其类型。首先,它是一个数字,即行的编号,然后将其指定为文本,字母C与行号组合,例如C3。接下来在R1C1引用中使用它,其中C3表示第3列,因此第一个LastLine赋值的行号将作为公式中的列结束

如果将变量暗显为特定类型,并且不会将A1表示法与R1C1混合使用,则代码会更干净

Sub test()
Dim LastLine As Long
Dim LastLineCell As String

LastLine = Range("C" & Rows.Count).End(xlUp).Row
LastLineCell = "C" & LastLine
Range(LastLineCell).Select
ActiveCell.FormulaR1C1 = "=SUM(R4C3:R[-1]C)"
Range("E13").FormulaR1C1 = "=if(R12C5 - R" & LastLine & "C26 <> 0,R12C5 - R" & LastLine & "C26,"""")"
End Sub

试试LastLine=C&CellsRows.Count,C.EndxlUp.Row而不是你期望的公式是什么?公式应该是=IF$E$12-c0,$E$12-C,在哪里找到最后一行试试LastLine=C&CellsRows.Count,C.EndxlUp.Row而不是什么?公式应该是=IF$E$12-c0,$E$12-C,在找到最后一行的地方我只是觉得我可以用C26的正常地址忘了我应该把它放在R26C3谢谢你的帮助我只是觉得我可以用C26的正常地址忘了我应该把它放在R26C3谢谢你的帮助
Sub test()
Dim LastLine As Long
Dim LastLineCell As String

LastLine = Range("C" & Rows.Count).End(xlUp).Row
LastLineCell = "C" & LastLine
Range(LastLineCell).Select
ActiveCell.FormulaR1C1 = "=SUM(R4C3:R[-1]C)"
Range("E13").FormulaR1C1 = "=if(R12C5 - R" & LastLine & "C26 <> 0,R12C5 - R" & LastLine & "C26,"""")"
End Sub