天阿!!為何程式會宣告錯誤???

顯示結果從第 1 筆 到 2 筆,共計 2 筆
  1. #1
    會員
    註冊日期
    2002-02-03
    討論區文章
    17

    天阿!!為何程式會宣告錯誤???

    Dim m As Single
    Dim n As Double
    Dim q As Double

    Sub 擷取winner和losser()
    For i = 2 To 3
    m = Sheets("整理").Cells(i, 4)
    For j = 1 To m
    n = Sheets("整理").Cells(i, 3) + j
    q = Sheets("整理").Cells(i + 1, 3) + 1 - j
    Sheets("yes").Range("A(n):H(n)") = Sheets("7090").Range("A(n):H(n)")
    Sheets("no").Range("A(q):H(q)") = Sheets("7090").Range("A(q):H(q)")

    Next j
    Next i

    請問一下為何第10,11列程式為何會執行錯誤????
    我按說明......說是要宣告陣列??......
    可是之前寫成sheets("整理").cells(i,4)=sheets("7090").cells(i,4)就沒問題
    但是寫成 .cells(q,4) .cells(q,4)就不行
    為什麼換成另一個變數就不行????
    請前輩指導一下小弟的錯誤........
    感激不盡.............



    附加檔案 附加檔案

  2. #2
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244
    1. A(n)、H(n) 這種變數後面帶括號的就是 VBA 陣列 的表示法, 而使用陣列之前是必須宣告的. 換句話說, 你的 Range 語法錯了. 你的目的是要把變數代入 Range 作為列號, 正確的方式應該是:
      Range("A" & n & ":H" & n)
      也就是以字串的方式連接起來. 我們平時不也是用 Range("A3") 這種表示法嗎?
    2. 即使第一點修正了, 你的程式還是不能正確運作. 因為要指定一個範圍的值只能以下列方式:

      • 複製 >> 貼上 (使用 Range.Copy destination 方法)
      • 指定一個值 (Range = value), 此範圍的所有儲存格都會 = value.
      • 使用迴圈, 逐一指定. Range 通常會用 Cells(r, c) 的表示式, 方便以變數代入欄列號.

      你就是不能直接令範圍 = 另一個範圍; 也許不會出現錯誤, 但也不會如願的.
    3. 以你的程式看來, 是依變數決定列號, 在工作表之間 複製 資料. 這樣你應該知道用哪種方式了吧.

類似的主題

  1. 【求助】電腦會不定時自動重開,有時程式會錯誤關閉...
    作者:Beretta 所在討論版:-- 電 腦 硬 體 討 論 版
    回覆: 11
    最後發表: 2005-09-01, 12:24 AM
  2. 【求助】我想請問一個在XP底下玩遊戲或執行多項程式會出現錯誤的問題?
    作者:bbbing 所在討論版:-- HELP ME 電 腦 軟 硬 體 急 救 版
    回覆: 1
    最後發表: 2004-06-22, 03:25 AM
  3. 為何美國非打伊拉克阿???
    作者:young 所在討論版:-- 閒 話 家 常 灌 水 版
    回覆: 11
    最後發表: 2003-03-11, 01:56 AM
  4. 請教為何宣告錯誤???
    作者:foxcat99 所在討論版:-- OFFICE 相 關 軟 體 討 論 版
    回覆: 0
    最後發表: 2002-04-18, 02:47 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •