【发布时间】:2013-01-30 21:11:12
【问题描述】:
我正在尝试粘贴
=IF(AND(C4-C3<($I$1/1000),A4=A3),"OOOO","-----")
进入一个单元格,我这样做是通过
Range("I3").Select
ActiveCell.FormulaR1C1 = "=IF(AND(C4-C3<($I$1/1000),A4=A3)," & Chr(34) & "OOOO" & Chr(34) & "," & Chr(34) & "-----" & Chr(34) & ")"
Range("I3").Select
返回运行时错误“1004” 应用程序定义或对象定义的错误
我已经尝试过双引号并看到 & Chr(34) & 解决方法并尝试过。没有任何效果。 此外,像
这样简单的东西 ActiveCell.FormulaR1C1 = "=IF("
没用,但是
ActiveCell.FormulaR1C1 = "=IF"
会。
奇怪的是,这在代码中有效
Range("C3").Select
ActiveCell.FormulaR1C1 = "=MID(B3,1,2)*3600+MID(B3,4,2)*60+MID(B3,7,9)"
Range("C3").Select
我之前做过的。 如果我将 "=MID(B3,1,2)*3600+MID(B3,4,2)*60+MID(B3,7,9)" (而不是我尝试使用的字符串)粘贴到调试时出现问题代码并点击继续,它将粘贴该行,因此在两个语句之间不会发生任何事情。只有一些选择和复制/粘贴之间会发生什么,但如果你想看的话,我还是会把它包括在这里
Range("C3").Select
ActiveCell.FormulaR1C1 = "=MID(B3,1,2)*3600+MID(B3,4,2)*60+MID(B3,7,9)"
Range("C3").Select
Selection.Copy
Range("D3").Select
Selection.End(xlDown).Select
ActiveSheet.Paste
Range("K3:Z4").Select
Application.CutCopyMode = False
Selection.Copy
Range("K1").Select
ActiveSheet.Paste
Columns("H:H").Select
Application.CutCopyMode = False
Selection.Cut
Columns("M:M").Select
ActiveSheet.Paste
Columns("I:I").Select
Selection.Cut
Columns("H:H").Select
ActiveSheet.Paste
Range("I3").Select
ActiveCell.FormulaR1C1 = "=IF(AND(C4-C3<($I$1/1000),A4=A3)," & Chr(34) & "OOOO" & Chr(34) & "," & Chr(34) & "-----" & Chr(34) & ")"
Range("I3").Select
【问题讨论】:
-
.FormulaR1C1需要R1C1中的公式。您在A1中提供了一个公式。请改用.Formula。 -
首先,按照提示here,避免在代码中使用.select。
-
什么是 r1c1 和 a1 我在这里有点菜鸟,我只是通过“录制宏”功能制作并正在编辑它
-
仅供参考,99% 的时间“运行时错误 '1004' 应用程序定义或对象定义错误”表示“您的 VBA 代码引发了异常,但您的 VBA 代码中没有异常处理程序。”如果您添加一些异常处理,您应该能够看到实际的 VBA 错误是什么。
标签: excel excel-formula vba