我搜索了这个问题的答案,但似乎人们回答它的唯一方法是使用Excel函数。我在Excel中有一个文件加载到文本文件中,但每周都会出现新数据。我需要将this第一列中的市场名称替换为各自的代码,这些代码位于this单独的工作表中,但位于同一个Excel文件中。
例如,我希望所有'CANADIAN DOLLAR - CHICAGO MERCANTILE EXCHANGE'单元格被'CAD'替换,所有'SWISS FRANC - CHICAGO MERCANTILE EXCHANGE'单元格将被'SWF'等替换。
我更喜欢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)
将文本及其替换放在电子表格的2个列中,然后使用
On Error Resume Next
Application.WorksheetFunction.VLookup(MyText,range("Sheet1!A1:B300"),2,False)
If Err.Number=1004 then msgbox "Value " & MyText & " not found"
返回替换文字。 如果找不到查找值,则返回可捕获的错误号码100。
(功能上等同于VLOOKUP
作为电子表格公式)