返回列表 上一主題 發帖

[發問] 請教改良方法,謝謝~

回復 1# 198188

    在下提供幾個小建議..
1.
可以將 Worksheets("Result") 設為定數 ( 如 KK= Worksheets("Result"))
這樣的話

  1.              .Cells(j, "B") = KK.Range("S" & j).Value
  2.              .Cells(j, "O") = KK.Range("L" & j).Value
  3.              .Cells(j, "F") = KK.Range("E" & j).Value
  4.              .Cells(j, "K") = KK.Range("U" & j).Value
  5.              .Cells(j, "L") = KK.Range("V" & j).Value
  6.              .Cells(j, "P") = KK.Range("AL" & j).Value
  7.              .Cells(j, "Q") = KK.Range("Q" & j).Value
  8.              .Cells(j, "R") = KK.Range("M" & j).Value
  9.              .Cells(j, "S") = KK.Range("N" & j).Value
  10.              .Cells(j, "T") = KK.Range("X" & j).Value
  11.              .Cells(j, "U") = KK.Range("Z" & j).Value
  12.              .Cells(j, "W") = KK.Range("K" & j).Value
  13.              .Cells(j, "X") = KK.Range("C" & j).Value
複製代碼
2.開啟、複製檔案部份
稍微看了一下 有更動的地方僅( fs 、thisworkbook.worksheets("xxx") 、 A.Offset(,X))
這樣的話可以 考慮用 Select Case ... End Select 作替代 類似以下方法
  1. '如有9項
  2. for uuw = 1 to 9
  3.         select case uuw
  4.                 case 1
  5.                      fs = "W:\PIHK\NEW香港辦公室正本收放單記錄FROM 01-MAR-2012 to current(updated).xlsx"
  6.                      Set Wb = Workbooks.Open(fs)
  7.                      With ThisWorkbook.Worksheets("State")
  8.                             For Each A In .Range(.[A2], .Range("A1").End(xlDown))
  9.                                  Set FRng = Wb.Sheets("收單記錄").Range("C:C").Find(A, lookat:=xlWhole, SearchDirection:=xlPrevious)
  10.                                  If Not FRng Is Nothing Then
  11.                                       A.Offset(, 9) = FRng.Offset(, 4).Value
  12.                                       If Rng Is Nothing Then Set Rng = A.Offset(, 7) Else Set Rng = Union(Rng, A.Offset(, 7))
  13.                                       Set FRng = Nothing
  14.                                  end if
  15.                            Next
  16.                       End With


  17.                 case 2
  18.                 case 3
  19.                 case 4
  20.                 case 5
  21.                 case 6
  22.                 case 7
  23.                 case 8
  24.                 case 9       

  25.         end select
  26.                       Wb.Close 0
  27. next uuw
複製代碼

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題