2014-01-21 52 views
1

我是Excel中的新VBA &宏,因此存在問題。使用VB宏將.csv導入到.xls工作簿(不只是一張)

我有一個Excel工作簿,其中一個主表叫做「BASE」。這裏有一列填充值。這些值有兩種類型:

  1. 標量值,只能在此表中直接輸入。

  2. 數組值。因此,有一個超鏈接指向工作簿中的其他工作表,其中要填充這樣一組值。 我有一個包含這些值的.csv文件,我必須使用VBA宏填充.xls文件中的值。任何人都可以告訴如何做到這一點?

考慮main.xls有4個輸入,2作爲標量和2作爲數組(因此鏈接到工作簿的其他表)。因此,讀取.csv文件時,在同一工作簿中,將單個值插入到BASE工作表上,並使用BASE工作表上的超鏈接填充兩個表格(用於從.csv文件輸入數組)。

+0

什麼是學習[VBA]的最佳途徑(http://stackoverflow.com/a/2901783/1490783)? –

回答

0

喜歡的東西下面將分析數據(僅當分隔用分號 - 你將不得不改變什麼設置爲「真」爲您的數據):

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 

我會建議你使用這樣的事情,然後設置你的數據在那裏,但是你需要。隨時更新您的問題。你所說的某些數據表格所涉及的部分沒有太大意義,至少在摘要中沒有。張貼一些代碼!

相關問題