【问题标题】:Import .csv to .xls workbook (not just one sheet) using VB macro使用 VBA 宏将 .csv 导入到 .xls 工作簿(不仅仅是一张纸)
【发布时间】:2014-01-21 10:35:46
【问题描述】:

我是 Excel 中的 VBA 和宏的新手,因此有一个问题。

我有一个 Excel 工作簿,其中有一个名为“BASE”的主工作表。这里有一列填充了值。这些值有两种类型:

  1. 标量值,只能在此表中直接输入。

  2. 值数组。因此,工作簿中有一个指向其他工作表的超链接,其中要填充这样的值数组。 我有一个包含这些值的 .csv 文件,我必须使用 VBA 宏在 .xls 文件中填充值。谁能告诉我该怎么做?

将 main.xls 视为具有 4 个输入,其中 2 个为标量,2 个为数组(因此,链接到工作簿的其他工作表)。因此,当读取 .csv 文件时,会在 BASE 工作表中插入单个值,并在同一个工作簿中使用 BASE 工作表上的超链接填充两个表(对于来自 .csv 文件的数组输入)。

【问题讨论】:

  • 学习VBA的最佳方法是什么?

标签: vba excel csv


【解决方案1】:

类似下面的内容将解析数据(仅当用分号分隔时 - 您必须更改为您的数据设置为“真”的内容):

Sub Parse_Setup()

DoEvents

Application.StatusBar = "Parsing Data"
Application.DisplayAlerts = False
If ActiveSheet.Range("C1").Value = "" Then 'this makes sure the destination cells are empty
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        )), TrailingMinusNumbers:=True
End If
Application.DisplayAlerts = True
End Sub

这样的事情会选择一个文件:

Sub SelectFile()

Dim Fname As String

Application.StatusBar = "Getting FileName from User"
ActiveSheet.Range("C3") = ""

Dim iFileSelect As FileDialog
Set iFileSelect = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
    If iFileSelect.Show = -1 Then
        For Each vrtSelectedItem In iFileSelect.SelectedItems
            MsgBox "The path is: " & vrtSelectedItem
            Range("C3") = vrtSelectedItem
        Next vrtSelectedItem
    End If
Set iFileSelect = Nothing

Fname = Range("C3")

Application.ScreenUpdating = False

Workbooks.Open Filename:=Fname

Application.StatusBar = "File Opened"

End Sub

我建议您使用类似的方法,然后根据需要从那里设置数据。随时更新您的问题。您说某些数据进入哪些表格的部分没有多大意义,至少在摘要中没有。贴一些代码!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 2016-03-13
    • 1970-01-01
    • 2022-01-17
    • 2017-06-25
    • 1970-01-01
    相关资源
    最近更新 更多