2013-04-14 55 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