返回列表 上一主題 發帖

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

回復 10# c_c_lai
  1. Option Explicit
  2. Sub Ex()
  3.     With Sheet1.Pictures.Insert("D:\EX1.GIF")
  4.         .Height = 150
  5.         .Width = 150
  6.         .Cut
  7.     End With
  8.     Sheet2.Range("B10").PasteSpecial
  9.    ' Sheet3.Range("C10").PasteSpecial
  10.    ' Sheet4.Range("D10").PasteSpecial
  11. End Sub
複製代碼

TOP

回復 9# GBKEE
謝謝大大,

這樣執行OK.

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

回復 13# c_c_lai


Hi,

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

的意思,可以幫忙解釋嗎?

TOP

回復  c_c_lai


Hi,

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

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

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

TOP

回復 9# GBKEE

大大,

上次程式確認可執行後,我將它應用到其他"TXT"巨集中,出現"陣列索引超出範圍"的對話框,我將將案上傳,可否幫忙看看?
貼簽名__指定儲存格內的檔名為對象.zip (92.11 KB)

TOP

回復 9# GBKEE

大大,

我試著修改了一部份程式,程式的用意在以"貼簽名.xlsm"的"EX" sheet的指定儲存格D3內的檔名,執行"TXT"的巨集,現在它可以執行巨集,但出現了個錯誤,可否幫忙指點? ..先謝謝了.
程式執行時,應該將 Shipping for ACE.xlsx的"Booking" sheet的資料copy 到TXT中,現在它雖然做到了,可是連同"貼簽名.xlsm"的"EX" sheet也有copy的動作(整著工作表出現copy後的虛線閃動),我該如何修改,讓它不要執行不正確的copy動作?

以下是修改完後的程式:
  1. Sub txt()
  2. With Workbooks(Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value)  '改這裡...
  3. 'Creat a TXT
  4. With .Sheets("Booking")
  5. Cells.Select
  6. Selection.Copy
  7. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  8. :=False, Transpose:=False
  9. Dim Rng(1 To 2) As Range, Fs As Object, A As Object, E As Range
  10. Dim S As Variant, xS As Variant
  11. Application.ScreenUpdating = False
  12. End With
  13. End With

  14. With Workbooks(Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value)  '改這裡...
  15. Set Rng(1) = .Sheets("Booking").[B1:B45] 'Rng(1) 工作表要複製的範圍
  16. Set Rng(2) = .Sheets("Booking").[A1] 'Rng(2) 存檔名稱的儲存格
  17. Rng(2) = Rng(2) & "_" & Rng(2).Offset(1) & "_" & Rng(2).Offset(2) 'Rng(2) 存檔檔名須多加[A2]的儲存格名稱
  18. End With

  19. Set Fs = CreateObject("Scripting.FileSystemObject") 'FileSystemObject 物件 提供對電腦檔案系統的存取。
  20. Set A = Fs.CreateTextFile("P:\TXT\" & Rng(2) & ".txt", True) '建立文字檔案

  21. Debug.Print Rng(1).Cells(27)  'Debug.Print :即時運算視窗 可見到 RAttn:? Mr. Peter Holfelder 中 ? 為 不可見字元 160"
  22. Rng(1).Replace ChrW(160), ""   '消除不可字元 160

  23. For Each E In Rng(1) '依序處裡複製範圍的儲存格
  24. S = Split(E, Chr(10))
  25. If UBound(S) > -1 Then '***有換行 的文字
  26. For Each xS In S
  27. A.WriteLine (xS) '儲存格寫入文字檔
  28. Next
  29. Else
  30. A.WriteLine (E.Text) '儲存格寫入文字檔
  31. End If
  32. Next
  33. A.Close

  34. Shell "Cmd /c start P:\TXT\" & Rng(2) & ".txt" '自動打開TXT檔
  35. Application.ScreenUpdating = True

  36. End Sub
複製代碼

TOP

回復 9# GBKEE
G大似乎不在家, 不知有人可以幫助我嗎?
我再次修改了程式,發現了另一個問題:("貼簽名.xlsm").Worksheets("EX").Range("D3")的指定檔案若未關閉,則每執行巨集一次,存成TXT的檔名Arctic_USA就會重複一次!
  1. Sub txt()

  2. Workbooks(Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value).Activate '先移到這活頁簿
  3. 'Creat a TXT
  4. With Sheets("Booking").Activate
  5. Cells.Select
  6. Selection.Copy
  7. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  8. :=False, Transpose:=False
  9. Dim Rng(1 To 2) As Range, Fs As Object, A As Object, E As Range
  10. Dim S As Variant, xS As Variant
  11. Application.ScreenUpdating = False
  12. End With

  13. With Workbooks(Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value)  '改這裡...
  14. Sheets("Booking").Select  '這句有無,結果都相同
  15. Set Rng(1) = .Sheets("Booking").[B1:B45] 'Rng(1) 工作表要複製的範圍
  16. Set Rng(2) = .Sheets("Booking").[A1] 'Rng(2) 存檔名稱的儲存格
  17. Rng(2) = Rng(2) & "_" & Rng(2).Offset(1) & "_" & Rng(2).Offset(2) 'Rng(2) 存檔檔名須多加[A2]的儲存格名稱
  18. End With

  19. Set Fs = CreateObject("Scripting.FileSystemObject") 'FileSystemObject 物件 提供對電腦檔案系統的存取。
  20. Set A = Fs.CreateTextFile("P:\TXT\" & Rng(2) & ".txt", True) '建立文字檔案

  21. Debug.Print Rng(1).Cells(27)  'Debug.Print :即時運算視窗 可見到 RAttn:? Mr. Peter Holfelder 中 ? 為 不可見字元 160"
  22. Rng(1).Replace ChrW(160), ""   '消除不可字元 160

  23. For Each E In Rng(1) '依序處裡複製範圍的儲存格
  24. S = Split(E, Chr(10))
  25. If UBound(S) > -1 Then '***有換行 的文字
  26. For Each xS In S
  27. A.WriteLine (xS) '儲存格寫入文字檔
  28. Next
  29. Else
  30. A.WriteLine (E.Text) '儲存格寫入文字檔
  31. End If
  32. Next
  33. A.Close

  34. Shell "Cmd /c start P:\TXT\" & Rng(2) & ".txt" '自動打開TXT檔
  35. Application.ScreenUpdating = True

  36. End Sub
複製代碼

TOP

回復 18# PJChen
16#  陣列索引超出範圍
  1. With Workbooks(Workbooks("貼簽名.xlsm").Worksheets("EX").Range("D3").Value)  '
  2.    .Activate  '  加這裡...
複製代碼
17# 整著工作表出現copy後的虛線閃動
  1. Application.CutCopyMode = False  '程式結束前加上
複製代碼
18# 每執行巨集一次,存成TXT的檔名Arctic_USA就會重複一次!
  1. Set Rng(2) = .Sheets("Booking").[A1] 'Rng(2) 存檔名稱的儲存格
  2. 'Rng(2) = Rng(2) & "_" & Rng(2).Offset(1) & "_" & Rng(2).Offset(2) 'Rng(2) 存檔檔名須多加[A2]的儲存格名稱
  3. Save_Name = Rng(2) & "_" & Rng(2).Offset(1) & "_" & Rng(2).Offset(2)'改這樣寫
  4. '
  5. '
  6. Set A = Fs.CreateTextFile("P:\TXT\" & Save_Name & ".txt", True) '建立文字檔案
  7. '
  8. '
  9. A.Close
  10. Shell "Cmd /c start P:\TXT\" & Save_Name & ".txt" '自動打開TXT檔
複製代碼

TOP

        靜思自在 : 靜坐常恩己過、閒談莫論人非。
返回列表 上一主題