返回列表 上一主題 發帖

[發問] 巨集陣列的程式

回復 6# PJChen
可得正確 圖片名稱
  1. Sub try()
  2.   Dim S As Picture
  3.   For Each S In Workbooks("Shipping formula-2.xlsm").Sheets("Signed").Pictures
  4.      S.TopLeftCell.Offset(-1) = S.Name
  5.   Next
  6. End Sub
複製代碼

TOP

回復 7# Hsieh

大大,
執行程式後會出現對話框並且顯示數字,還有Picture#,但無法知道哪個代號與哪個簽名檔是配在一起的!
另外就是只有二個簽名,可是為什麼對話框出現4次?

TOP

回復 8# GBKEE

G大,
執行程式後,會在簽名檔上出現相應的Picture代碼,這證實我原先設的代碼也沒錯,可是會亂貼的原因是什麼?是否二個貼簽名的程式有衝突的地方?導致亂貼簽名檔?
另外想請教每放一個簽名檔都會自動產生它自己的代號,但代號是否可以更改?

Shipping formula-2.zip (110.25 KB)

TOP

本帖最後由 Hsieh 於 2012-10-12 23:05 編輯

回復 9# PJChen
  1. Sub nn()
  2. For Each pic In 工作表8.Pictures
  3. MsgBox "圖片的序號  " & pic.Index '圖片的序號
  4. MsgBox "圖片的名稱  " & pic.Name  '圖片的名稱
  5. Next
  6. End Sub
複製代碼
妳的程式碼中try程序使用Pictures(1).Copy這會指定圖片序號
try_2程序使用Pictures("Picture 7").Select這會指定圖片名稱
play.gif
學海無涯_不恥下問

TOP

回復 11# Hsieh

大大,

指定圖片序號 or 指定圖片名稱 有什麼不同嗎?這二個簽名,一個是Picture 1,一個是Picture 7,問題在於我指定了,但會亂貼,我該如何修正程式嗎?

TOP

回復 11# Hsieh

補充:
如果我想以"指定圖片名稱"來寫程式,它並不接受.
Workbooks("Shipping formula-2.xlsm").Sheets("Signed")."Picture 1".Copy

TOP

本帖最後由 Hsieh 於 2012-10-13 00:37 編輯

回復 13# PJChen

Workbooks("Shipping formula-2.xlsm").Sheets("Signed").Pictures("Picture 1").Copy
這是指定名稱的寫法
這類工作我會建議圖檔直接貼入不需將圖片先放在工作表再去複製
做一個簡單範例妳參考看看
    簽名檔.rar (33.19 KB)
學海無涯_不恥下問

TOP

回復 14# Hsieh

Hsieh大大,

謝謝幫我修改的程式,已經可以執行了!
因工作上需要放的簽名檔太多了,所以才想讓它自動放上簽名,這樣真的方便許多!感謝!

TOP

回復 2# GBKEE

大大,

請問這個程式若改為只貼在一個sheet( INV),而不是貼3個sheet, 我將他改為以下,雖可以執行,但原先你幫我寫的是陣列,現在改這樣好像有點複雜化了,我可以怎麼修正呢?
   Dim Rng(1 To 1) As Range, xi As Integer
    Workbooks("Shipping formula.xlsm").Sheets("Signed").Pictures("Picture 1").Copy
    With Workbooks("Shipping for Courier.xlsx")
        .Activate
        Set Rng(1) = .Sheets("INV").[R:R].Find("B. C. MART COMPANY LTD.").Offset(3, 0)
        For xi = 1 To 1
            Rng(xi).Parent.Activate
            Rng(xi).Activate
            ActiveSheet.Paste
        Next
    End With

TOP

回復 10# PJChen
試試看
  1. Sub try()  '每一個簽名檔都可以改它自己的代號 ( Name ,名稱)
  2.     Dim Rng(1 To 3) As Range, xi As Integer
  3.     With Workbooks("Shipping formula-2.xlsm").Sheets("Signed")
  4.         For xi = 1 To .Pictures.Count
  5.             .Pictures(xi).Name = "簽名" & xi
  6.         Next
  7.         .Pictures("簽名1").Copy '.Pictures("簽名2").Copy
  8.     End With
  9.     With Workbooks("Shipping for ACE.xlsx")
  10.         Set Rng(1) = .Sheets("PKG").[R:R].Find("B. C. MART COMPANY LTD.", LOOKAT:=xlPart).Offset(2, -2)
  11.         Set Rng(2) = .Sheets("INV").[Q:Q].Find("B. C. MART COMPANY LTD.").Offset(2, -2)
  12.         Set Rng(3) = .Sheets("SCD").[B:B].Find("Signature:").Offset(0, 1)
  13.         For xi = 1 To 3
  14.             Rng(xi).Parent.Pictures.Delete  '刪除 Rng(xi)父層(工作表)的圖片
  15.             Rng(xi).PasteSpecial
  16.         Next
  17.     End With
  18. End Sub
複製代碼

TOP

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題