0

我有什么:

  • .csv 文件
  • 多列
  • 第一列中的关键字列表

我想做什么:

  • 添加一个新的第一列(将其他列向右移动),我将其称为“A”
  • 阅读我将称为“B”的(现在)第二列的每个单词
  • 对于 BI 列的每个单词,想在 A 列中写一个详细的单词

我将负责细化功能。

你能帮我编辑一下这个 .csv 文件吗?

4

3 回答 3

1

您有第一行关键字:

"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

这为您提供了关键字。使用这个循环,您应该能够想出自己的循环来读取每一行并像这样对第一列进行操作。

于 2013-03-14T18:44:43.390 回答
0

或者我可以将原始 csv 文件上传到数据表中,在表单中的数据网格中将其可视化,然后直接在数据表中添加一列

于 2013-03-15T22:09:23.683 回答
0

这假设您知道 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
于 2013-03-15T11:23:37.747 回答