我在VBA中编写了一个代码,它从工作簿中获取值并将它们复制到另一个工作簿。因此,例如在G20单元格中,我将有45 678 然后代码将这个数字舍入到46 000,然后我需要一个函数来删除最后3个数字,如果数字足够大,使用下面提供的If语句。 我认为内容是正确的,但我认为我没有采用正确的方式。
DSA.Worksheets(1).Range("G10").Value = Application.WorksheetFunction.Round(tax_declaration.Worksheets(1)Range("I72").Value, -3)
DSA.Worksheets(1).Range("G11").Value = Application.WorksheetFunction.Round(Val(Application.WorksheetFunction.Sum(Range("I25:I27"))), -3)
Call thousand(DSA.Worksheets(1).Range("G10"))
End Sub
Sub thousand(i As Variant)
If Right(i, 3) = "000" Then
i = Left(i, Len(i) - 3)
End If
End Sub`
我怎样才能创建像if语句这样的函数,并用它来遍历我所有的DSA.Worksheets(1)范围' ? - 我有几个。
提前致谢!
答案 0 :(得分:1)
我不完全确定你的意思,但不是sub只是使用一个函数并传递不同的i:
Function thousand(i As Variant) As Variant
If Right(i, 3) = "000" Then
thousand = Left(i, Len(i) - 3)
End If
End Function
然后你就可以按照debug.print thousand(DSA.Worksheets(1).Range("G10"))