Board logo

標題: [發問] 是否有大大可以幫我改表單裡的VBA [打印本頁]

作者: a31075ha    時間: 2014-3-3 19:23     標題: 是否有大大可以幫我改表單裡的VBA

[attach]17649[/attach]

主要是跟檔案內右上角的出貨表單跟 導入產品規格的按鈕大同小異

只是導入產品規格一定要框選產品編號才可以有作用是否有辦法改成框選哪一欄都可以
而且導入產品規格到sheet2時產品編號跟產品名稱如果只有數字就會無效 不知到位甚麼

小弟VBA不大行是否有大大可幫小弟改右上角的 產品紀錄 測試紀錄 異常紀錄的VBA
大致上也跟導入產品規格一樣框選範圍自動將範圍內指定欄位 找尋最後一筆資料的下一列以值的方式貼上另外一個工作表
另外三個檔案希望貼上的欄位有KEY幾筆資料
只是因為這三個檔案 每個月都會開一個新的 是否有辦法做一個指定路徑的方式在表單中或者像檔案中再參照欄裡KEY入路徑就會指定到這個檔案
拜託大大 感恩
[attach]17648[/attach]
作者: a31075ha    時間: 2014-3-4 09:34

回復 1# a31075ha


    Option Explicit
Dim Show_File As Object
Sub 加入檔案()
    Dim I As Integer
    Set Show_File = Application.FileDialog(msoFileDialogOpen)
    With Show_File
         .InitialFileName = "D:\*.xls"  '指定 xls檔
         .AllowMultiSelect = True
         .Show
         If .SelectedItems.Count > 0 Then
            For I = 1 To .SelectedItems.Count
             Cells(I, 2) = .SelectedItems(I)
         Next
         End If
    End With
End Sub
Sub 執行()
    Dim I As Integer, Sh As Worksheet, Rng As Range
    Set Sh = Workbooks("貼上.xlsm").Sheets(1)
    With Show_File
        If .SelectedItems.Count > 0 Then
            For I = 1 To .SelectedItems.Count
                Set Rng = Sh.Cells(Sh.Rows.Count, "A").End(xlUp).Offset(1)  'A欄最後有資料列的下一列
                With Workbooks.Open(.SelectedItems(I))
                    .Sheets(1).Range("A1:C6").Copy Rng
                    .Close 0
                End With
            Next
         End If
    End With
   Sh.Parent.Save   ' 貼上.xlsm  存檔
End Sub

類似像這一段這樣 只是貼上的方是希望跟導入產品規格的方式一樣 只有框選範圍內的指定欄位貼上
作者: a31075ha    時間: 2014-3-4 15:41

本帖最後由 a31075ha 於 2014-3-4 15:42 編輯

點選">" 選擇要貼的檔案
[attach]17665[/attach]
[attach]17666[/attach]

旁邊產生路徑
[attach]17667[/attach]

按下按鈕將剛剛框選範圍裡的資料貼過去剛剛選擇的檔案
[attach]17668[/attach]

貼過來的資料是剛剛框選範圍裡這個檔案有的欄位的資料才貼過來並以值的方式
[attach]17669[/attach]

而每一筆資料一直往下貼上並存檔
而每個檔案都會保持開啟的狀態下
感恩
而下方的 測試紀錄跟異常紀錄都是相同模式 (欄位不同)




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