天阿!!為何程式會宣告錯誤??? - PCZONE 討論區

返回   PCZONE 討論區 > ▲ -- 電 腦 軟 體 討 論 區 > -- OFFICE 相 關 軟 體 討 論 版


PCZONE 討論區



通知

-- OFFICE 相 關 軟 體 討 論 版 Word、Excel、PowerPoint、Access、Outlook、FrontPage或Office XP等的問題解答與經驗分享

會員
天阿!!為何程式會宣告錯誤???
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)就不行
為什麼換成另一個變數就不行????
請前輩指導一下小弟的錯誤........
感激不盡.............



上傳的附加檔案
檔案類型: zip ppp.zip (21.9 KB, 6 次觀看)
回覆
Take it easy~

  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. 以你的程式看來, 是依變數決定列號, 在工作表之間 複製 資料. 這樣你應該知道用哪種方式了吧.


回覆


類似的主題
主題 主題作者 討論版 回覆 最後發表
天阿~換isp升級到8M居然沒比原先2M的好 saku579 ---- ADSL 方 案 與 費 率 12 2006-01-16 05:25 PM
天阿!ftp下載竟然只有幾k !!!! lyr -- Cable Modem 心 得 交 流 版 1 2004-10-18 06:54 PM
天阿~Seedent在搞什麼鬼阿~ ROACH ---- ADSL 抱 怨 與 鼓 勵 1 2001-02-16 12:21 AM






 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。