2012-05-31 52 views
0

我搜索了這個問題的答案,但它似乎是人們回答它的唯一方法,就是使用Excel函數。我在Excel中有一個文件加載到一個文本文件中,但每週都會有新的數據出來。我需要用第一列中的市場名稱替換它們各自的代碼,這些代碼在this單獨的工作表中,但在同一個Excel文件中。如何用ID使用VBA替換字符串?

例如,我想所有「加元 - 芝加哥商品交易所」 - 與「SWF」被替換細胞等

與「CAD」,所有「芝加哥商品交易所瑞士法郎」來代替,細胞

我寧願如果名稱在Excel文件中保持不變,只有在我將它們傳輸到文本文件時才更改。但是,如果這很難做到這一點就不重要了。

僅供參考,這裏是我使用寫入文本文件的代碼:

Sub getData1() 
On Error GoTo ErrHandler: 
''Finding Row Information 
Dim Ticker As String 
Dim rCount As Integer, i As Integer, j As Integer, rcCount As Integer, rowStr As String 
rCount = Application.CountA([RDRows]) 
rcCount = Application.CountA([RDCols]) 
Myfile = "H:\wkoorbusch\Desktop\" & "CFTC_Fin_Data.txt" 

Dim fnum As Integer 
fnum = FreeFile 
Open Myfile For Output As fnum 
For i = 1 To rCount 
    For j = 1 To rcCount 
     rowStr = [Start].Offset(i, 0).Value & "," & [Start].Offset(0, j).Value _ 
     & "," & Format([Start].Offset(i, 2).Value, _ 
     "mm/dd/yyyy") & "," & [Start].Offset(i, j).Value 
     Print #fnum, rowStr 
    Next j 
Next i 
Close fnum 
Exit Sub 

ErrHandler: 
    Close fnum 
End Sub 

預先感謝任何及所有的幫助。

+0

兩件事。 1)你爲什麼使用循環來寫入文本文件? Excel可以將'SaveAs'作爲文本文件。您只需將相關格式的數據設置爲新表格,然後將該表格直接保存爲文本文件。這將是非常快的。 2)您可以使用VBA中的'Vlookup'或使用'.FIND'和'.FINDNEXT'來代替'Vlookup'來查找和替換這些單詞。請參閱此鏈接第4節http://siddharthrout.wordpress.com/2011/07/14/find-and-findnext-in-excel-vba/ –

+0

我不使用'SaveAs'的原因是因爲我正在重新格式化數據出來後,每一條數據都作爲自己的行,而不是包含單個日期+索引組合的每一位數據的巨大行。這些文本文件然後使用SQL以這種格式寫入我們的數據庫。 – weskpga

+0

公平足夠:)你有沒有看到第二點? –

回答

1

放置文本和更換2個colums您的電子表格中,然後用

On Error Resume Next 
Application.WorksheetFunction.VLookup(MyText,range("Sheet1!A1:B300"),2,False) 
If Err.Number=1004 then msgbox "Value " & MyText & " not found" 

返回替換文本。 當查找值未找到時,將返回可捕獲的錯誤號碼1004。

(功能上相當於VLOOKUP作爲電子表格公式)