返回列表 上一主題 發帖

[發問] 簡化程式

看完整段後……這應該是在不同的檔案,對不同的區域,做相同的事情……

這或許可以用array
把"區域","檔案路俓",各別創建array,然後用迴圈的方式取出array裡相對應的值,做相同的動作……

提供點想法……試著做做看!
初學VBA乍到twbts

TOP

本帖最後由 play9091 於 2012-5-13 21:58 編輯

回復 3# luke


    試試看這樣子可不可以吧!我不知道在物件裡面可不可以放arr(),不行的話再把它拿出來好了!先試試看這樣子!
  1. Sub CC()
  2. Dim arr1, arr2, arr3, arr4
  3. arr1 = Array("D:\TEST\TEST20\TT.txt", "D:\TEST\TEST20\TEST\TT.txt", "D:\TEST\TEST20\UU.csv")
  4. arr2 = Array("TT", "TT", "UU")
  5. arr3 = Array("A:B", "G:H", "C")
  6. arr4 = Array("A:B", "A:B", "A")
  7. Set fd = CreateObject("Scripting.FileSystemObject")
  8. Application.ScreenUpdating = False
  9. For I = 1 To 3
  10. Set FT = ActiveWorkbook
  11. FS = arr1(I)
  12. With Workbooks.Open(FS).Sheets(arr2(I))
  13.      FT.Sheets("Sheet2").Columns(arr3(I)) = .Columns(arr4(I)).Value
  14.     .Parent.Close False
  15. End With
  16. Next I
  17. End Sub


  18. Sub DD()
  19. Dim arr1, arr2, arr3, arr4
  20. arr1 = Array("D:\TEST\TEST20\TT.txt", "D:\TEST\TEST20\TEST\TT.txt", "D:\TEST\TEST20\UU.csv")
  21. arr2 = Array("TT", "TT", "UU")
  22. arr3 = Array("D:E", "G:H", "F")
  23. arr4 = Array("A:B", "A:B", "A")
  24. Application.ScreenUpdating = False
  25. Set FT = ActiveWorkbook
  26. For I = 1 To 3
  27. Set FT = ActiveWorkbook
  28. FS = arr1(I)
  29. With Workbooks.Open(FS).Sheets(arr2(I))
  30.      FT.Sheets("Sheet2").Columns(arr3(I)) = .Columns(arr4(I)).Value
  31.     .Parent.Close False
  32. End With
  33. Next I
  34. sheet2.[f1:f5] = [c1:c5].Value
  35.     Range("F6").FormulaR1C1 = "=""Count=""&COUNT(R[-5]C[-2]:RC[-2])"
  36.     Range("F7").FormulaR1C1 = "=""Lan""&R[-6]C[-2]&""=""&R[-6]C[-1]"
  37.     Range("F7").Copy Range("F8:F9")
  38.     Range("F6:F9").Copy
  39.     Selection.PasteSpecial Paste:=xlPasteValues
  40. End Sub
複製代碼
初學VBA乍到twbts

TOP

        靜思自在 : 看別人不順眼,是自己修養不夠。
返回列表 上一主題