我相信对于大多数人来说这是一个相当简单的问题,但我有这个代码
With ActiveSheet
.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = .Range("L1").Value2
这允许我获取L1的内容并将其作为静态值粘贴到B列的下一个可用单元格中。我现在想要将此代码用于不同的范围。"该范围是两个单元格的文本组合成新单元格。我使用以下代码来做到这一点
With ActiveCell
.Formula = "=CONCATENATE(L1,N1)"
.Cells = .Value
.WrapText = False
除了它总是将新值发布到活动单元格中,并且它不会注册该值应该粘贴到下一个可用单元格列A中。我已尝试用以下代码替换代码的前两行。 ..
With ActiveSheet
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = .Range("L1&N1").Value2
和
With ActiveSheet
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = .Range("=CONCATENATE(L1,N1)").Value2
和
With ActiveSheet
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = .Formula = "=CONCATENATE(L1,N1)".Value2
我不太确定下一步该尝试什么
答案 0 :(得分:1)
你几乎就在那里,但目前正在打破一些语法约定。
目的:将L1和N1中的值连接成一个字符串,并将其放入A列中的下一个可用单元格中。
第一个应该写得更接近:
With ActiveSheet
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = .Range("L1").Value2 & .Range("N1").Value2
end with
跳过第二个,第三个应该是:
With ActiveSheet
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Formula = "=CONCATENATE(L1,N1)"
end with
'or,
With ActiveSheet
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = _
application.evaluate("CONCATENATE(L1,N1)")
end with
在后两个例子中,第一个将实际公式放入单元格,第二个评估公式将返回的结果并将结果放入单元格。
可以通过引用要在嵌套With...End With statement中处理的单元格来解决其他单元格属性。
With ActiveSheet
with .Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
.value = application.evaluate("CONCATENATE(L1,N1)")
.wraptext = false
end with
end with
再看一下我为hte提供的链接......结束文档。上面的内容从ActiveSheet开始,然后是A列中的下一个空白单元格。在此秒内应用的所有内容With ... End With将发生在该单元格和该单元格上。