我有什么:
- .csv 文件
- 多列
- 第一列中的关键字列表
我想做什么:
- 添加一个新的第一列(将其他列向右移动),我将其称为“A”
- 阅读我将称为“B”的(现在)第二列的每个单词
- 对于 BI 列的每个单词,想在 A 列中写一个详细的单词
我将负责细化功能。
你能帮我编辑一下这个 .csv 文件吗?
您有第一行关键字:
"B,C,D,E"
但是你想"A"
在开头插入,例如,有
"A,B,C,D,E"
您可以阅读整行,并以逗号 (,) 分隔。然后在循环中重建字符串,并为要在其中惰性化新关键字的索引提供特殊情况。
Dim keywords As String
Dim newKeywords As String
Dim arr() As String
Dim keywordToInsert As String
Dim i As Integer
keywords = "B,C,D,E"
keywordToInsert = "A"
arr = Split(keywords, ",")
For i = 0 To UBound(arr) Step 1
If i = 0 Then
newKeywords = keywordToInsert
End If
newKeywords = newKeywords & "," & arr(i)
Next i
这为您提供了关键字。使用这个循环,您应该能够想出自己的循环来读取每一行并像这样对第一列进行操作。
或者我可以将原始 csv 文件上传到数据表中,在表单中的数据网格中将其可视化,然后直接在数据表中添加一列
这假设您知道 CSV 文件中的列:
Private Sub RewriteFile(ByRef the_sFileName As String)
Dim sFileNameTemp As String
Dim iFileNoInput As Integer
Dim iFileNoOutput As Integer
Dim iField1 As Integer
Dim sField2 As String
Dim datField3 As Date
' Temporary file name.
sFileNameTemp = the_sFileName & ".tmp"
iFileNoInput = FreeFile
Open the_sFileName For Input As #iFileNoInput
iFileNoOutput = FreeFile
Open sFileNameTemp For Output As #iFileNoOutput
Do Until EOF(iFileNoInput)
' Read in each field of each line into a separate variable, then write to temporary file together with new field. (If you don't know a field's type, use Variants)
Input #iFileNoInput, iField1, sField2, datField3
Write #iFileNoOutput, Elaborate(iField1, sField2), iField1, sField2, datField3
Loop
Close #iFileNoOutput
Close #iFileNoInput
' Delete the original file, and replace with new file.
Kill the_sFileName
Name sFileNameTemp As the_sFileName
End Sub