Board logo

標題: 請問如何用VBA寫 擷取A檔案部分資料填到B檔案中 [打印本頁]

作者: happycoccolin    時間: 2013-8-14 15:54     標題: 請問如何用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

以此類推
如附檔 ^^ 謝謝~
[attach]15774[/attach]

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

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

2.還有請問產生的新檔案TITLE是否可以設定名稱?目前B檔案TITLE到AV欄(48)
作者: happycoccolin    時間: 2013-8-15 10:30

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

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

以此類推

拜託拜託了!!!
作者: blunt    時間: 2013-8-21 23:05

看不懂你要複製內容的邏輯,
小弟也是新手,
大至寫了一下,
內容主要是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
作者: Hsieh    時間: 2013-8-22 10:52

回復 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
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)