【发布时间】:2015-01-16 22:20:48
【问题描述】:
我想说如果在一个单元格(i,2)中包含文本“Lala”,另一个单元格(i,9)包含文本“Active”,它应该复制单元格 3 和 4 的内容.
不幸的是,我的代码不能在第二个条件下工作 - 没有它正在运行。那么谁能告诉我如何正确写呢?
如果有“停用”,则不应复制内容。
If Cells(i, 2) = "Lala" And Cells(i, 9) = "Active" Then
Range(ActiveSheet.Cells(i, 3), ActiveSheet.Cells(i, 4)).Select
Selection.Copy
已解决!解决办法是:
If ActiveSheet.Cells(i, 2).Value = "Lala" And ActiveSheet.Cells(i, 9).Value = "Active" Then
Range(ActiveSheet.Cells(i, 3), ActiveSheet.Cells(i, 4)).Select
【问题讨论】:
-
我只是用一个例子重新编写了你的代码,它可以正常工作,即使单元格中的值是用公式计算的。
-
您的 If 语句有问题。你是什么意思“不工作”?当您期望它应该输入它时,它没有输入 If ?
-
我可能会建议几件事:1) 引用工作表,所以
ActiveSheet.Cells(i,2)而不是仅仅Cells(i,2),并使用 value 属性,所以ActiveSheet.Cells(i,2).Value。但是,如果您从 ActiveSheet 运行宏,则这相当于您当前的代码,因此您可能希望更好地指定“它不工作”的含义。 -
复制数据后,您要对其进行哪些操作?因为如果您只是要将其“粘贴”到其他地方,则无需复制并粘贴它。您可以只设置目标的值。查看此链接:How to Avoid using select statements。目的地总是一样的吗?如果它发生变化,是什么导致它发生变化,或者它相对去向何方?
-
@matteo NNZ 我刚刚用 ActiveSheet.Cells(i,2).Value 替换了 Cells(i,2) ,现在它可以工作了。谢谢! “它不起作用”是指单元格包含“lala”的内容没有复制到另一个 xlsm 文档中。在我只有 If Cells(i, 2) = "Lala" 之前 - 它有效!但是后来我添加了“And-statement”并且没有任何内容被复制。但就像我上面说的,使用 ActiveSheet.Cells(i,2).Value 它正在工作(内容已被复制)。