Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 更改范围的数字格式_Excel_Vba - Fatal编程技术网

Excel 更改范围的数字格式

Excel 更改范围的数字格式,excel,vba,Excel,Vba,我想用变量rng定义范围B4:lastCell,然后对其应用“0.000”数字格式。我无法正确设置范围 编辑:我收到运行时错误“424”:当我的代码到达行集合rng=[B4:LastCell]时需要项目。请尝试以下操作: Sub FormatThreeDecimals() Dim ws As Worksheet Dim rng As Range Dim lastCell Set ws = Worksheets("Summary") lastCell = Cells.Find(What:="*"

我想用变量rng定义范围B4:lastCell,然后对其应用“0.000”数字格式。我无法正确设置范围

编辑:我收到运行时错误“424”:当我的代码到达行集合rng=[B4:LastCell]时需要项目。请尝试以下操作:

Sub FormatThreeDecimals()
Dim ws As Worksheet
Dim rng As Range
Dim lastCell

Set ws = Worksheets("Summary")
lastCell = Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious).Select
Set rng = [B4:LastCell]

Range("rng").NumberFormat = "0.000"

End Sub

Range(rng)
不是
“rng”
,因为这是您的变量,我已经切换了该部分,谢谢。我仍然对设置rng=[B4:LastCell]的部分存在问题,我认为这是不正确的方法或语法。使用
[]
意味着评估。您需要写入
范围(“B4:B”和单元格(4,2).end(xldown).row)
或类似的内容。如果此方法会截断数字,我如何将其调整为舍入到2位小数?我添加了ActiveWorkbook.PrecisionAsDisplayed=True,现在存储的值与显示的值匹配,但我怀疑这是四舍五入还是只是进一步截断了它?
Dim lastCell As Range
Set ws = Worksheets("Summary")
Set lastCell = ws.Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious)
Set rng = ws.Range("b4", lastCell)
rng.NumberFormat = "0.000"