返回列表 上一主題 發帖

請問如何用VBA寫 擷取A檔案部分資料填到B檔案中

請問如何用VBA寫 擷取A檔案部分資料填到B檔案中

本帖最後由 happycoccolin 於 2013-8-14 15:59 編輯

請教各位大大~:$

想請問如何擷取A檔案部分資料填到B檔案中呢?

目前希望是自行選擇檔案A.alsx,經由VBA產生新檔案B.xlsx

A.xlsx B6填到B.xlsz的B2
A.xlsx C6填到B.xlsz的D2
A.xlsx D6填到B.xlsz的U2
A.xlsx E6填到B.xlsz的X2
A.xlsx G6填到B.xlsz的AQ2
A.xlsx H6填到B.xlsz的AR2

以此類推
如附檔 ^^ 謝謝~
TEST_0814.zip (13.99 KB)

1.請問是否不管多少筆資料都可以填上去?

目前是使用vlookup做 但希望可利用VBA完成

2.還有請問產生的新檔案TITLE是否可以設定名稱?目前B檔案TITLE到AV欄(48)

再說明一下~拜託各位大大解惑@@

A檔案的資料從A6開始
Title Block                                                       
AAA        BBB        CCC                                       
QQQ-1234567        OOXX        OOXXXX                                       
                                                       
A        B                             C        D        E        F        G        H
1        111-2222222        DOG        1        L2902        Normal        L2902        AAA123
                                                        AAA234
                                                        AAA345
1        111-3333333        DOG1        1        L2900        Normal        L2900        BBB123
                                                        BBB234
                                                        BBB345
1        111-4444444        DOG2        1        L290        Normal        L290        CCC123
1        111-5555555        DOG3        1        BL290        Normal        BL290        DDD123
1        111-6666666        DOG4        1        SK4604        Normal        SK4604        EEE123
                                                        EEE234
1        111-7777777        DOG5        1        SK8600        Normal        SK8600        FFF123
                                                        FFF234
1        111-8888888        DOG6        1        SK5200        Normal        SK5200        GGG123

B.xlsx
欄位太多貼不完用說明的

A.xlsx B6填到B.xlsx的B2
A.xlsx C6填到B.xlsx的D2
A.xlsx D6填到B.xlsx的U2
A.xlsx E6填到B.xlsx的X2
A.xlsx G6填到B.xlsx的AQ2
A.xlsx H6填到B.xlsx的AR2

以此類推

拜託拜託了!!!

TOP

看不懂你要複製內容的邏輯,
小弟也是新手,
大至寫了一下,
內容主要是a.xls的內容複製到b.xls

Sub 匯入資料()
    Dim Mypath As String    '路徑
    Dim Myfile As String    '目前EXCEL檔案名稱
   
    Myfile = ThisWorkbook.Name

    Mypath = InputBox("輸入要匯入的檔案路徑")
   
    Workbooks.Open Filename:=Mypath & "\b.xls"
   
    Windows(Myfile).Activate
   
    Sheets(1).Cells(1, 1).Copy
   
    Windows("b.xls").Activate
   
    Sheets(1).Cells(1, 1).Select
   
    ActiveSheet.Paste


End Sub

TOP

回復 1# happycoccolin

基本上,你只是欄位插入與刪除
只是你的標題列要擴充或改變標題列文字,實在看不出規則
只針對A檔另存B檔並重新排列欄位做測試
  1. Sub Ex()
  2. Dim fs
  3. fs = Application.GetOpenFilename("Excel File(*.xls*),*.xls*") '開啟A檔
  4. If TypeName(fs) = "String" Then
  5. With Workbooks.Open(fs)
  6.    .Sheets(1).Copy
  7. .Close 0
  8. End With
  9. With ActiveSheet
  10. .Rows("1:4").Delete '刪除前4列
  11. .[C:C].Insert
  12. .[E:T].Insert
  13. .[V:W].Insert
  14. .[Y:Y] = ""
  15. .[Z:AP].Insert
  16. fs = Application.GetSaveAsFilename(InitialFileName:="B", FileFilter:="Excel File(*.xls;*.xlsm;*.xlsx),*.xls;*.xlsm;*.xlsx") '存為B檔
  17. If TypeName(fs) = "String" Then .Parent.SaveAs fs: Workbooks(Dir(fs)).Close
  18. End With
  19. End If
  20. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 自己害自己,莫過於亂發脾氣。
返回列表 上一主題