2011-08-23 34 views
3

由於某些原因,Excel將我的編號轉換爲文本並在列E3和F3中的每個單元格中添加一個前面的撇號。將文本轉換爲Excel中的VBA編號

我需要將列E3:F3轉換回數字並將它們格式化爲貨幣。我怎麼做?

A1:K2是標題。

下面的代碼是不工作:

Set wb = objApp.Workbooks.Open("aFile.xls", True, False) 
wb.Sheets(1).Rows(2).Delete 
wb.Sheets(1).Range("E3:F3") = Mid(wb.Sheets(1).Range("E3:F3"), 2, 
           Len(wb.Sheets(1).Range("E3:F3")) - 2) 
wb.Sheets(1).Range("E3:F3").NumberFormat = "$#,##0.00" 

回答

1

假設你想同樣的貨幣格式,你從工具欄獲得,這個工程:

wb.Sheets(1).Range("E3:F3").Formula = wb.Sheets(1).Range("E3:F3").Value 
wb.Sheets(1).Range("E3:F3").Style = "Currency" 

只需使用worksheet.Range()沒有屬性力量Excel來準確猜測你實際上意味着哪個屬性(這稱爲「默認屬性」),並且會得到不一致的結果。

+0

不錯。它確實有效。你如何得到整個列的格式,除了E1,E2,F1,F2(這是列的標題)?謝謝! – Bruno

+0

你可能需要做一些像Range(「E:F」)。Style(風格)=「貨幣」,然後固定標題:Range(「E1:F2」)。Style =「Normal」' – BradC

+0

這似乎工作:'wb.Sheets(1).Range(「E:F」 ).Formula = wb.Sheets(1).Range(「E:F」)。Value wb.Sheets(1).Range(「E:F」)。Style =「Currency」 – Bruno

1

嘗試:

Range("E3:F3").Style = "Currency" 
+0

沒有工作,但謝謝。 – Bruno

0

儘量突出顯示欄,做數據 - >文本到列(Excel 2003中,在2007+文本列是在其中一個色帶上)。點擊'Delimited',然後'Next',再次點擊Next,然後選擇General作爲格式。這應該將整列轉換爲數字。

如果這樣工作,它很容易自動化。讓我知道你是否需要代碼。

編輯 - 你必須一次做一列。

0

這實際上是有效的。關鍵是之前應用格式設定值:

Set wb = objApp.Workbooks.Open("aFile.xls", True, False) 
wb.Sheets(1).Rows(2).Delete 

wb.Sheets(1).Range("E3:F3").NumberFormat = "$#,##0.00" 

For Row = 3 To 3 'your rows range in case you need iterate through (1 row only in your case) 
    For Column = 5 To 6 'E3:F3 
     wb.Sheets(1).Cells(Row, Column) = Mid(wb.Sheets(1).Cells(Row, Column), 2, Len(wb.Sheets(1).Cells(Row, Column)) - 2) 
    Next Column 
Next Row 
0
Len(wb.Sheets(1).Range("E3:F3")) 

對我來說這只是(如預期)拋出一個錯誤。您必須分別處理每個單元以使用您的方法。

Dim c as Range 
Set wb = objApp.Workbooks.Open("aFile.xls", True, False)  

With wb.Sheets(1) 
    .Rows(2).Delete  
    For each c in .Range("E3:F3").cells 
    c.Value = Mid(c.value, 2, Len(c.value)-2) 
    c.NumberFormat = "$#,##0.00" 
    next c 
End With 
1

如果你的文字只是一些,答案很簡單。通過1
說單元格A1 =「000或公式或宏乘以它返回一段文字,由1 ‘000’相乘的答案* 1 = 1234。
我想提取的值VBA表單上的標籤或txtBox。
貨號= lblText * 1
又如: 如果.txtLevel10 * 1> 50然後 ...等。
還與其他一些數據類型的作品「16-JAN-15」 * 1 = 16/1/15
作品在Excel & VBA但前提是在原文中沒有其它字符。 乾杯