2017-07-10 43 views
0

我的代碼中的數字格式有問題。VBA數字格式不起作用

如果我在這個子程序中停止宏並逐步運行它(F8),它工作正常,沒有問題。但是,如果它與宏的其餘部分一起運行(不會發布整個事物,因爲它非常大),它只是不適用數字格式,我似乎無法弄清楚爲什麼。

任何幫助將不勝感激,謝謝!

代碼:

Private Sub VolumeIncluded(TWs As Worksheet, MWs2 As Worksheet, MLngth As Double, MFinal As String, TLnght As Double, TFinal As String) 

Dim TFtLnght As Double 

On Error GoTo NextSheet 

TLnght = TWs.Range("$A$" & Rows.Count).End(xlUp).Offset(2).Row 
TFinal = "$A$" & TLnght 
TWs.Range(TFinal) = "Volume Included" 
With TWs.Range(TFinal) 
    .Interior.Color = 12611584 
    .Font.ThemeColor = xlThemeColorDark1 
    .Font.Bold = True 
End With 

MLngth = MWs2.Range("$H$" & Rows.Count).End(xlUp).Row 
MFinal = "$A$16:$H" & MLngth 
MWs2.Range(MFinal).Copy 

TLnght = TWs.Range("$A$" & Rows.Count).End(xlUp).Offset(1).Row 
TFinal = "$A$" & TLnght 
TFormat = "$H$" & TLnght 
TWs.Range(TFinal).PasteSpecial xlPasteAllUsingSourceTheme 
Application.CutCopyMode = False 

'----------This piece doesn't work----------- 
TFtLnght = TWs.Range("$H$" & Rows.Count).End(xlUp).Row 
TFinal = "$H$" & TLnght & ":" & "$H$" & TFtLnght 
Range(TFinal).NumberFormat = "#,##0" 

NextSheet: 
End Sub 
+0

如果它適用於只運行這段代碼,那麼錯誤可能在代碼的其他部分。你是否用F8運行所有的代碼來檢查你是否覆蓋你的格式? – UGP

+0

@UGP是的,我剛剛使用F8運行整個代碼,它按預期工作,格式化已應用,並且在任何時候都沒有出錯。但是,如果我一次運行整個事件,它不適用格式。其他的一切工作,如果一步一步地運行。讓我瘋狂... –

+0

你試過了嗎?TWs.Range(TFinal).NumberFormat =「#,## 0」' – darcyq

回答

1
TWs.Range(TFinal).NumberFormat = "#,##0" 

當你調用範圍()總是安全的,你知道一個工作表對象引用,因爲活動工作表默認情況下使用。