改变使用visual basic包含currecny的单元格的数字格式

我想将其types的货币值添加到Excel工作表。 我为此创build了以下代码片断。

Public Sub WorkSheetForCurrencies(ByRef ProductsCollection As VBA.Collection, ByRef cur As String, ByRef ExgRate As Double, ByRef symbol As String) Dim index As Long Dim objProduct As Product index = 2 For Each objProduct In ProductsCollection If symbol = "£" Then 'Way 01: mobjCSVWorkSheet.Cells(index, 8).NumberFormat = "-[$£-809]* #,##0.00_-;-[$£-809]* #,##0.00_-;_-[$£-809]* " - "??_-;_-@_-" ElseIf symbol = "$" Then 'Way 02: mobjCSVWorkSheet.Cells(index, 8).Select Selection.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* " - "??_);_(@_)" ElseIf symbol = "€" Then mobjCSVWorkSheet.Cells(index, 8).NumberFormat = "_([$€-2] * #,##0.00_);_([$€-2] * (#,##0.00);_([$€-2] * " - "??_);_(@_)" End If mobjCSVWorkSheet.Cells(index, 8) = objProduct.SalesUnitPrice * CCur(ExgRate) index = index + 1 Next objProduct End Sub 

我已经尝试了两种方法来改变数字格式,如上面的代码。 但是那些types不匹配错误 。 请告诉我,为了更改单元格号码格式,我必须更改。 谢谢

这是你的问题:

 "-[$£-809]* #,##0.00_-;-[$£-809]* #,##0.00_-;_-[$£-809]* " - "??_-;_-@_-" 

这是评估

 "-[$£-809]* #,##0.00_-;-[$£-809]* #,##0.00_-;_-[$£-809]* " 

减去

 "??_-;_-@_-" 

由于您正在对string执行算术运算,因此会尝试将双方都转换为数字值,并且会失败。

尝试加倍双引号,例如

 "-[$£-809]* #,##0.00_-;-[$£-809]* #,##0.00_-;_-[$£-809]* "" - ""??_-;_-@_-"