返回列表 上一主題 發帖

[發問] 指定D3儲存格,執行排序

回復 3# PJChen
依據GBKEE大大的程式碼也可以修改成:
  1. Sub sorting()
  2.     Dim Wb As Workbook
  3.    
  4.     '  Workbooks(Workbooks("sorting.xlsm").Worksheets("排序").Range("D3").Value).Activate
  5.     '  要解碼的工作表改成在D3輸入,執行時一併要同時開啟 2012 BCMart Chart-Adam 20121023.xls
  6.     '  下列修正為執行 sorting.xlsm 時, 系統會自動連同將 2012 BCMart Chart-Adam 20121023.xls 一併同時開啟。
  7.     Set Wb = Workbooks.Open(ThisWorkbook.Path & "\" & Workbooks("sorting.xlsm").Worksheets("排序").Range("D3").Value)
  8.    
  9.     With Wb.ActiveSheet
  10.         Set b = .Range("R4").CurrentRegion
  11.         A = Array("R", "S", "T", "Q", "D")
  12.         .AutoFilter.Sort.SortFields.Clear
  13.         For i = 0 To 4
  14.            .AutoFilter.Sort.SortFields.Add Key:=b.Columns(A(i)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
  15.         Next
  16.         With .AutoFilter.Sort
  17.             .Header = xlYes
  18.             .MatchCase = False
  19.             .Orientation = xlTopToBottom
  20.             .SortMethod = xlPinYin
  21.             .Apply
  22.         End With
  23.     End With
  24. End Sub
複製代碼

TOP

本帖最後由 c_c_lai 於 2012-11-5 09:44 編輯

回復 8# PJChen
回復 9# GBKEE
上半部如改成如下,個人覺得會方便多。
  1. Sub copySigned()    ' GBKEE
  2.     Dim Rng(1 To 3) As Range, xi As Integer, Wb As Workbook
  3.    
  4.     Set Wb = Workbooks.Open(ThisWorkbook.Path & "\" & Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value)
  5.    
  6.     Workbooks("貼簽名.xlsm").Sheets("Signed").Pictures("Picture 1").Copy
  7.     '   With Workbooks(Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value)        '    改這裡...
  8.     With Wb
  9.          .
  10.          .
  11.     End With
  12.          .
複製代碼
GBKEE 大大,順便請教,如果 "Picture 1"、"Picture 2" 我是在該目錄下存成兩個 .JPG 或是 .BMP 檔,
那又該如何叫進來呢? 謝謝您!

TOP

回復 11# GBKEE
我把程式碼加入測試 OK 了, 謝謝您的指導!
  1. Sub copySigned2()    ' GBKEE
  2.     Dim Rng(1 To 3) As Range, xi As Integer, Wb As Workbook
  3.    
  4.     Set Wb = Workbooks.Open(ThisWorkbook.Path & "\" & Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value)
  5.    
  6.     '  Workbooks("貼簽名.xlsm").Sheets("Signed").Pictures("Picture 1").Copy
  7.     With Workbooks("貼簽名.xlsm").Worksheets("EX").Pictures.Insert(ThisWorkbook.Path & "\" & "02.GIF")
  8.         .Height = 150
  9.         .Width = 150
  10.         .Cut
  11.     End With
  12.     '  With Workbooks(Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value)  '  改這裡...
  13.     With Wb
  14.         Set Rng(1) = .Sheets("PKG").[r:r].Find("B. C. MART COMPANY LTD.", LOOKAT:=xlPart).Offset(2, -2)
  15.         Set Rng(2) = .Sheets("INV").[Q:Q].Find("B. C. MART COMPANY LTD.").Offset(2, -2)
  16.         Set Rng(3) = .Sheets("SCD").[B:B].Find("Signature:").Offset(1, 1)
  17.         For xi = 1 To 3
  18.             Rng(xi).Parent.Activate
  19.             Rng(xi).Activate
  20.             ActiveSheet.PasteSpecial
  21.         Next
  22.     End With
  23. End Sub
複製代碼

TOP

回復  c_c_lai


Hi,

我無法理解
        .Height = 150
        .Width = 150
        .Cut

...
PJChen 發表於 2012-11-5 20:49

設定高度、寬度、並將此新加入圖片予以剪下 (Cut)  (指 02.gif) ,
供接下來之下達貼上動作 (PasteSpecial)。

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題