使用VBmacros将.csv导入到.xls工作簿(不只是一张)

我是新来的VBA和macros在Excel中,因此有一个问题。

我有一个Excel工作簿,一个名为“BASE”的主表。 这里有一个值填充的列。 有两种types的值:

  1. 标量值只能在此表中直接input。

  2. 值的数组。 因此,有一个超链接到工作簿中的其他工作表,其中将填充这样的值数组。 我有一个包含这些值的.csv文件,我必须使用VBAmacros填充.xls文件中的值。 任何人都可以告诉如何做到这一点?

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

像下面的东西将parsing数据(只有分号分隔 – 你将不得不改变为你的数据设置为“真”):

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 

像这样的东西会select一个文件:

 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 

我build议你使用这样的东西,然后从那里设置你的数据,但是你需要。 随时更新您的问题。 你所说的某些数据表格所代表的部分并没有多大意义,至less在摘要中没有。 张贴一些代码!