【发布时间】:2014-11-10 13:59:34
【问题描述】:
我是 VBA 新手,我无法理解我的代码在哪里出错。尝试执行 If 语句后,我收到消息“Range 类的自动填充方法失败”。
我的代码是:
Columns("H:H").Select
ActiveCell.FormulaR1C1 = _
"=IF(C[-6] = ""Commodities Ags/Softs"", (IF(RC[-3]=R1C24,""Y"",(IF(RC[-3]=R2C24,""Y"",(IF(RC[-3]=R3C24,""Y"",(IF(RC[-3]=R4C24,""Y"",(IF(RC[-3]=R5C24,""Y"",(IF(RC[-3]=R6C24,""Y"",(IF(RC[-3]=R7C24,""Y"",(IF(RC[-3]=R8C24,""Y"",(IF(RC[-3]=R9C24,""Y"",""N"")))))))))))))))))),"""")"
Selection.AutoFill Destination:=Columns("H:H"), Type:=xlFillDefault
它在最后一行失败,If 语句很好,任何帮助将不胜感激,
干杯
【问题讨论】:
-
为什么不简单地
Columns("H:H").FormulaR1C1 = ...? -
理论上可行,但它会冻结 Excel 工作表。我想我错误地指定了它,或者根本没有,但我需要一种方法来识别最后填充的行并填充到那里
-
实际上有一千个关于查找最后一行的问题(已经回答)。 .. 你甚至在 SO 上用谷歌或搜索过吗?
-
悉达多替我回答了这个问题。你必须明白我有一个补救级别的 VBA,我不知道最好的方法去做我想做的事情。我在谷歌上搜索,但有时很难应用我的发现,对给您带来的不便深表歉意。
-
不麻烦,我只是想教你如何钓鱼。你已经认识到你并没有真正指定你需要什么——作为回应,我说“你应该用谷歌搜索它!”。如果你把这两部分放在一起,你最终会得到@Sid 的答案:)