0

我试图在 vba 中表达以下内容:

Format(Sheet2!R[2]C[7], "Short Date")

但我不断收到编译错误[2],说:Expected: List separator or )

我正在尝试以该格式引用该单元格,因为它是要自动填充的更大公式的一部分。有什么我想念的吗?


所以在vba中,我会有类似的东西:

Worksheets("Sheet1").Select
Range("A3").Select
Selection.AutoFill Destination:=Range("A3:A" & rowCount)

但是单元格A3不是由 vba 填充的,它是作为一个函数手动放入 excel doc 中的:

=Sheet2!B3&" "&Sheet2!A3&" "&Sheet2!C3&"_"&Sheet2!D3&"_"&Sheet2!E3

我的问题是函数中的第二个值"&Sheet2!A3&"实际上是一个日期,当它被写入时,它会出现,41331而不是典型的“dd/mm/yyyy”格式。我希望将此值格式化为人类可读的格式并将其嵌入函数中,仍保留自动填充功能。

4

2 回答 2

0

Worksheets("Sheet2").Range("A1:D10")会给你一个范围。请参阅http://msdn.microsoft.com/en-us/library/office/ff836512.aspx

于 2013-03-03T15:07:04.257 回答
-1

VBA 可以更改单元格内容,但是您将丢失公式。格式化单元格在任何情况下都无济于事,因为它包含一个字符串,该字符串由许多无法格式化为日期的值连接而成。

使用 Sam Ward 的评论中显示的 Excel Text(Sheet2!A3,"dd/mm/yyyy")函数来格式化公式中的原始数据。

于 2013-03-03T20:48:34.957 回答