【问题标题】:Excel Rounding VBAExcel舍入VBA
【发布时间】:2012-10-17 07:30:22
【问题描述】:

我编写了一些 vba 代码,从工作簿中选择一个范围并将其复制到另一个工作簿中的单元格。我的雇主希望这第二个工作簿是自动化的,这样手动输入就不会乱七八糟了。我需要将我的数字四舍五入到最接近的千位,例如,我的数字是-2,218,387,我需要它读取-2,218,但目前它显示为-2,218,000。这完全抛弃了自动化工作簿并给我带来了很多问题。下面是复制范围的代码;

Public Sub InvoicedInstallments2()

Dim rng1 As range
Dim rng2 As range


Set rng1 = Workbooks("201209TB.xlsm").Worksheets("excel").range("F295")
Set rng2 = Workbooks("201210DB1.xlsm").Worksheets("UK monthly dashboard").range("AD49")
rng2.Value = rng1.Value


End Sub

【问题讨论】:

    标签: vba excel automation excel-2007 rounding


    【解决方案1】:

    我假设您的复制代码类似于

    rngSource.Copy rngDest
    

    换成这个,试试

    rngDest.Value = Round(rngSource.Value / 1000, 0)
    

    注意,这只会复制,而不是格式

    【讨论】:

    • 克里斯,我的复制代码是我们昨天讨论的问题,你可能回答了很多问题,但使用的代码是你的。见代码编辑问题
    • 我添加了行 rngDest.Value = Round(rngSource.Value / 1000, 0) 并将其修改为 rng2.Value = Round(rngSource.Value / 1000, 0) 它有效,你是正式的我的本周英雄!
    猜你喜欢
    • 2016-11-24
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2020-11-05
    相关资源
    最近更新 更多