2012-10-09 66 views
1

我使用具有電池的Excel文件包含°C符號與其他字符串(如.. -40°C )如何在數據庫中顯示Excel中的°C符號?

,我試圖使用來獲取單元格的值

Dim strIn As String 
    strIn = Range("B2").Text 

所有工作的罰款,並〜應變的值是「-40°C」,但一旦我改變了我的區域設置如下..

Regional setting

它開始顯示〜應變值「-40?C」

Debug Mode

0°符號隨着?

在此先感謝您的幫助.. Liyo何塞。

回答

0

一個快速解決方案是將「?」符號在字符串中。像

strIn = Replace(strIn, "?", "°") 

的聲明應該解決您的問題

2

這是在VBA IDE的限制。它只能顯示總共255個不同的字符(其中一些不可打印)。這將是標準Ansii的前128個字符,然後剩下的將由您的區域設置中的代碼決定。

VBA顯示?因爲它不能顯示°(因爲°不在您的設置的字符代碼列表中)。當你瀏覽你的其他代碼時,它應該像你期望的那樣執行,並且正確地讀取你的表單。

如果你想在VBA中使用°,你需要使用它的字符代碼。從我的測試中,您至少可以在我的電腦上通過Chrw(176)生成它(是的,我確實已將您的區域設置更改爲泰文)。要檢查代碼,您可以通過循環來運行它們。現在正如我之前所說,IDE將顯示?,但Excel將顯示°。

您可以通過在你的代碼運行這個測試證實了這一點:

debug.print Instr(strIn, "?") 
'Should be 0 
debug.print Instr(strIn, chrw(176)) 
'Should be 4 
+0

由於丹尼爾對於這樣的詳細解釋和嘗試..其實我有一個記錄設定在我有包含-40℃,-60℃等的字符串和我使用dataSheet.Range(dataSheet.Cells(lastRow + 1,1),dataSheet.Cells(lastRow + 1,1))。CopyFromRecordset allData
用於將recorset寫入excel表單,但即使在excel表單中,它也呈現爲 -40?C – Leo

0

假設你的象徵將永遠不會的東西,可以影響價值,val應該給你,你是後的數據。

示例數據:

text val() 
40°C 40 
40?C 40 
40%C 40 
40C  40 
相關問題