如何在vb.net中设置excel单元格格式

时间:2015-05-18 07:24:41

标签: vb.net excel

我正在修改用vb.net编写的现有应用程序。 有一个导出选项可将信息导出到Excel工作表。 在导出之前,单元格格式定义如下。

.Cells(cRow, 17).NumberFormat = "$#,##0.00_);($#,##0.00)"

这很好用。但根据新要求,货币符号是动态的。 因此,一旦我设定货币(例如:马来西亚的riggit -MYR),

.Cells(cRow, 17).NumberFormat = "MYR#,##0.00_);(MYR#,##0.00)"

这会产生错误" 无法设置Range类的NumberFormat属性"。 可以有很多货币,我尝试使用变量设置货币。

Dim strCurrency As String = ""
strCurrency = "SGD"
.Cells(cRow, 17).NumberFormat = ""+strCurrency +"#,##0.00_);("+strCurrency +"#,##0.00)"

所有人都给了我同样的错误。 有人请告诉我如何设置自定义货币符号。 感谢

3 个答案:

答案 0 :(得分:2)

如果我没弄错,EXCEL数字格式的任何字符都必须用引号括起来,所以:

<div id="runtime_area"></div>
<script type="text/html" id="page1">
  <b>Banner</b>
</script>

答案 1 :(得分:1)

使用此

.Cells(cRow, 17).NumberFormat = strCurrency & "#,##0.00_);(" & strCurrency & "#,##0.00)"

没有必要使用如接受的答案中所示的那么多引号。

<强>解释

你的字符串

"MYR#,##0.00_);(MYR#,##0.00)"

也可以写成

"MYR" & "#,##0.00_);(" & "MYR" & "#,##0.00)"

现在只需将"MYR"替换为您的变量

即可

答案 2 :(得分:0)

将货币符号括在引号中:

Dim strCurrency = Chr(34) & "SGD" & Chr(34)
.Cells(cRow, 17).NumberFormat = String.Format("{0}#,##0.00_);({0}#,##0.00)", strCurrency)

Chr(34) = "