返回列表 上一主題 發帖

vba - Rows內變數應如何寫

回復 1# jim
  1. Sub Ex()
  2.     [A2] = 84
  3.     Rows(([A2] + 16) & ":" & ([A2] + 60)).Select
  4. End Sub
複製代碼

TOP

回復 4# jim
Set rng = Range([125:h250], [h65536].End(3)) ???
不太清楚你的表達。

TOP

回復 6# jim
Set rng = Range([125:h250], [h65536].End(3))?
我猜想你是指
[A2] = 84
Set rng = Range(Range("H" & ([A2] + 41)),  [H65536].End(3))
目前的範圍值為: H125:H###   
(假設  [H65536].End(3) 位址為 H###)

TOP

回復 6# jim
附上一個實務範例,供參考:
  1. Sub 換月()
  2.     Dim cts As Integer, xs As Integer
  3.     Dim rng As Range, lDate As Date
  4.     Dim 年 As String, 月 As String
  5.    
  6.     With Sheets("XXXXXX")
  7.         For xs = 0 To 2
  8.             '  將 H1:AL2、H18:AL19、H35:AL36 範圍內之資料清空。
  9.             .Range("H" & (xs * 17 + 1) & ":AL" & (xs * 17 + 2)).ClearContents
  10.             '  設定 rng 為 H1、H18、以及 H35 欄位。
  11.             Set rng = .Range("H" & IIf(xs < 3, xs * 17 + 1, 63))
  12.             For cts = 1 To Day(DateSerial(年, 月 + 1, 0))      '  取得該月天數
  13.                 rng.Offset(, cts - 1) = cts   
  14.                 '  H1、H18、以及 H35 欄位值為幾號;並依序往右延伸。
  15.                 lDate = DateSerial(年, 月, cts)
  16.                 '  H2、H19、以及 H36 欄位值為星期幾;並依序往右延伸。
  17.                 rng.Offset(1, cts - 1) = Right(WeekdayName(Weekday(lDate)), 1)
  18.             Next cts
  19.         Next xs
  20.     End With
  21. End Sub
複製代碼

TOP

回復 9# jim
Set rng = Range("H" & ([A2] + 41:"H"& [A2] + 166), [h65536].End(3)).
應該為
Set rng = Range(Range("H" & ([A2] + 41) & ":H" & ([A2] + 166)), [h65536].End(3))
假設 [A2]] = 84,其結果的範圍值為: H125:H###  
兩點之間取最小及最大值,由下圖你便會瞭解了。

TOP

        靜思自在 : 心中常存善解、包容、感思、知足、惜福。
返回列表 上一主題