2013-04-14 32 views
0

我尽量保持在我的vba脚本中相同的单元格格式,但我不能。无法保持单元格格式在vba

我的变量prixB总是一个'数字',我的变量prixA是一个标准类型。我需要像他们在基础文件中那样有钱。

有我的脚本!

谢谢您的帮助

Sub Intersection() 

Dim nombre As Integer 
Dim tableauDate(1 To 115) As Date 
Dim tableauValeur(1 To 115) As String 
Dim valeur As Variant 
Dim incrementeurForeach As Integer 
Dim dateA As Date 
Dim dateB As Date 
Dim prixA As Currency 
Dim prixB As Currency 

nombre = 115 
incrementeurForeach = 1 

For incrementeur = 2 To nombre 

dateA = Range("A" & incrementeur).Value 
dateB = Range("c" & incrementeur).Value 
prixA = Range("B" & incrementeur).Value 
prixB = Range("D" & incrementeur).Value 

Select Case dateA 
    Case Is = dateB 
     tableauDate(incrementeur) = dateA 

    Case Is > dateB 
     tableauDate(incrementeur) = dateA 

    Case Else: 
     tableauDate(incrementeur) = dateB 

End Select 

If prixA >= prixB Then 
    tableauValeur(incrementeur) = prixA 
Else 
    tableauValeur(incrementeur) = prixB 
End If 

Next incrementeur 


Sheets.Add After:=ActiveSheet 

For Each valeur In tableauDate 

Range("A1").Offset(incrementeurForeach, 0).Value = tableauDate(incrementeurForeach) 
Range("B1").Offset(incrementeurForeach, 0).Value = tableauValeur(incrementeurForeach) 

incrementeurForeach = incrementeurForeach + 1 

Next valeur 

End Sub 

回答

0

要应用数字格式(而这一切是在Excel中),你可以:

Range("A1").NumberFormat = "$#"Range("A1").NumberFormat = "$#.##"

您可以修改数字格式根据您的具体货币需要,小数精度等。

+0

当我这样做,会出现一列“0”。 – user2238411

+0

我不确定你的意思。无论如何,解决方案将应用'.NumberFormat'。请尝试录制宏,手动将一个或两个单元格的数字格式更改为所需的格式,然后从宏录制器发布结果代码。我会根据您的回应修改我的解决方案。 –

0

我看到这是非常古老的,但我beli前夕我有你的解决方案。使用.Text和.Value返回单元格的实际文本,而不是其内容。我遇到了这个问题,因为我希望我的vba代码包含“$”符号,以及发送抵押贷款公司总计时的正确格式。希望这将有助于有人出来哈哈:)

dateA = Range("A" & incrementeur).text dateB = Range("c" & incrementeur).text prixA = Range("B" & incrementeur).text prixB = Range("D" & incrementeur).text