2016-04-27 164 views
0

我對MSOffice如何處理數字格式存在挑戰。

雖然我相信這是類似的根本原因:Stop Excel from automatically converting certain text values to dates

這是不同的,因爲這不是一個日期格式,這涉及到Excel和PowerPoint中使用VBA。

我有一些數據是從dB跳出到CSV文件中的,我正在對PPT模板中的某些文本標記(例如@@ ReplaceText @@)執行.Replace。 (有一個很好的職位上如何做到這一點的網站上,我似乎無法立即找到)

有一個領域我需要處理與被跟蹤的度量標準,這個字段是文字在我的分貝,但它可以包含特殊字符 - 特別是$和%。

例如我可以在CSV文件中看到以下值: 「增加市場份額」,「1234」,「10美元」,「28%」

我希望VBA將此全部視爲文本,所以%和$字符維護...但是... Excel將數據作爲數字讀取並保留$或%符號。 PowerPoint刪除$或%符號並將28%轉換爲0.28和10到10。

根據上述問題,將Excel78中的.csv添加"=""28%"""將使我在PowerPoint中看到精確的文本文本。

添加前面的space'字符在強制Excel讀取數據作爲文本字符串。但是PowerPoint忽略它並且行爲與上述相同。例如28%到0.28。

我試着用如下的格式,但由於該數據是可變的,我不知道要應用的情況下。

sCurrentText = Format(sCurrentText, "$#")sCurrentText = Format(sCurrentText, "0.0%")

如果語句不工作,因爲$或%中不存在的VBA看到的東西(如$或%字符已經消失)

If sCurrentText Like "*$*" ThenIf sCurrentText Like "*%" Then

所以我的問題是我怎麼逼VBA採取什麼是CSV文件爲文本,而忽略處理$或%爲特殊字符,只是維持他們在CSV?

+0

我已經擴展我的原始問題,以提供更多的細節問題,以便如何通過PowerPoint和Excel處理這些字符($和%)。 –

回答

0

你沒有指定要在CSV文件中的數據做什麼,但我認爲你試圖打開VBA文件。

如果打開使用OpenText公司(如下)的CSV文件,然後Excel將自動解析格式的數據它認爲合適的。例如:

Workbooks.OpenText fileName:="directory", DataType:=xlDelimited, Comma:=True 

你可以用不同的方法來打開,如果你想VBA來處理數據作爲您認爲合適的,你可以只使用文本的CSV文件。

Sub OpenCSVFile() 
Dim ff As Long, iRow As Long, iCol As Long 
Dim FilePath As String 
Dim FileBuffer As String   'Entire CSV file as one string 
Dim LineSeparatedFile() As String 'Array of data separated into lines 
Dim LineData() As String   'Array of comma separated values for that line 

ff = FreeFile 
Open FilePath For Binary Access Read As #ff 
FileBuffer = Space$(LOF(ff)) 
Get #ff, , FileBuffer 
Close #ff 
LineSeparatedFile = Split(txtBuffer, vbCrLf) 

For iRow = 0 To UBound(LineSeparatedFile) 
    LineData = Split(LineSeparatedFile(i), ",") 
    For iCol = 0 To UBound(LineData) 
     'Code to do something with each entry. 
     'Eg. print to cell as text 
     ThisWorkbook.Sheets(1).Cells(iRow + 1, iCol + 1).NumberFormat = "@" 
     ThisWorkbook.Sheets(1).Cells(iRow + 1, iCol + 1).Value = LineData(iCol) 
    Next iCol 
Next iRow 
End Sub 
+0

這是一個很好的實用工具,它將數據作爲文本存儲在Excel中。 但是,正如上面在我更正的問題中所述,PowerPoint處理此差異並忽略Excel接受的「讀爲文本」標記。 –