返回列表 上一主題 發帖

[發問] 請問怎麼簡化程式

[發問] 請問怎麼簡化程式

本帖最後由 john2006168 於 2010-9-3 23:42 編輯

Hi all,help
Sheets(2).Range("A2:A2000").Value = Sheets(1).Range("c2:c2000").Value
Sheets(2).Range("B2:B2000").Value = Sheets(1).Range("B2:B2000").Value
Sheets(2).Range("C2:C2000").Value = Sheets(1).Range("F2:F2000").Value
Sheets(2).Range("D22000").Value = Sheets(1).Range("G2:G2000").Value
Sheets(2).Range("E2:E2000").Value = Sheets(1).Range("H2:H2000").Value
Sheets(2).Range("F2:F2000").Value = Sheets(1).Range("I2:I2000").Value
Sheets(2).Range("G2:G2000").Value = Sheets(1).Range("N2:N2000").Value
Sheets(2).Range("H2:H2000").Value = Sheets(1).Range("O2:O2000").Value

後面重複的3行是怎麼回事?

TOP

本帖最後由 jackdream 於 2010-9-3 16:58 編輯

回復 1# john2006168

忽略最後兩行程式,因為區域重覆,請檢查您的原內容是否有誤
i = Array(3, 2, 6, 7, 8, 9, 14, 15, 15)
For j = 1 To 9
    Sheets(2).Range(Chr(64 + j) & "2:" & Chr(64 + j) & "2000") = Sheets(1).Range(Chr(64 + i(j - 1)) & "2:" & Chr(64 + i(j - 1)) & "2000").Value
Next j

TOP

回復 1# john2006168
是不是如此
   
  1. Sub Ex()
  2.     Dim Ar(), i%
  3.     Ar = Array("c", "b", "f", "g", "h", "i", "n", "o", "o", "r", "s")
  4.     For i = 0 To UBound(Ar)
  5.         Sheets(2).Range("A2:A2000").Offset(, i).Value = Sheets(1).Range(Ar(i) & "2:" & Ar(i) & "2000").Value
  6.     Next
  7. End Sub
複製代碼

TOP

[版主管理留言]
  • Hsieh(2010-9-3 23:38): 你要的簡化就是依照你代碼內容簡化,請詳述需求不要惜字如金

本帖最後由 john2006168 於 2010-9-3 23:17 編輯

回復 4# GBKEE


    sorry ,後面3個不用理會,而且不用理會是否固定到第2000格

TOP

回復 5# john2006168


    明白.我是想把sheet1的部份Column copy到sheet2..

TOP

  1. Sub nn()
  2. ar = Array(1, 2, 3, 4, 5, 6, 7, 8)
  3. ay = Array(3, 2, 5, 7, 8, 9, 14, 15)
  4. For i = 0 To 7
  5. Sheet2.Columns(ar(i)).Value = Sheet1.Columns(ay(i)).Value
  6. Next
  7. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 有時當思無時苦,好天要積雨來糧。
返回列表 上一主題