Board logo

標題: [發問] 迴圈問題 [打印本頁]

作者: spermbank    時間: 2013-11-22 12:05     標題: 迴圈問題

本帖最後由 spermbank 於 2013-11-22 12:07 編輯

大家好:
     Sheets("工作表1").Select
      x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算
     假設X=10
     for i = 3 to x
     next
     可以執行
     for i = x to 3
     next
     為什麼不能執行,有什麼方式可以使這個迴圈正常執行呢?
作者: GBKEE    時間: 2013-11-22 12:30

回復 1# spermbank
你沒有常瀏覽討論區的內容,(多多瀏覽,功力才能升級)
  1. X=10
  2.      for i = 3 to x
  3.      next
  4.      for i = x to 3  STEP -1
  5.      next
  6.    
複製代碼

作者: spermbank    時間: 2013-11-22 12:42

本帖最後由 spermbank 於 2013-11-22 12:43 編輯

回復 2# GBKEE


    G大,感謝。
    我會慢慢學習瀏覽,現在都花在想策略上><
    感謝
作者: owen06    時間: 2013-11-22 12:45

回復 1# spermbank


for 在你沒有指定的情形下,都是從小到大去執行的,
所以你只要x比後面的數值大,就不會動,
因此要在後面加個 step -1,
step表示數值每次跳的間隔。
作者: ML089    時間: 2013-11-22 17:32

回復 1# spermbank

x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算

看大家比較常用的方法是
x = [A65536].End(xlUp).Row 'A欄最後一個資料的列號
作者: kimbal    時間: 2013-11-23 00:18

回復  spermbank

x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算

看大 ...
ML089 發表於 2013-11-22 17:32



    Counta 有一個條件是的要看看欄位上不能有空值出現, 出現的話會少算了.
作者: bmouth    時間: 2013-11-23 11:02

有更簡單的:

x = Sheets("工作表1").UsedRange.Rows.Count

不過只會回總共行數,如果開頭是空白的則不會計算進去。
作者: bmouth    時間: 2013-11-23 11:04

  Sheets("工作表1").Select
      x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算
     假設X=10
     for i = 3 to x
     next
     可以執行
     for i = x to 3
     next


可以改成:
  1. Sheets("工作表1").Select
  2. total = ActiveSheet.UsedRange.Rows.Count
  3. start = 3
  4. For i = total+start To start Step -1
  5. '執行
  6. Next
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)