作者snow12031 (Q我的人是手養嗎)
看板Office
標題[問題] VBA錯誤
時間Sun Nov 14 22:56:46 2021
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:EXCEL 365
版本:365
各位好 VBA新手請教,因為年末要盤點要做個表格複製的VBA
但是卡在SUB的地方 一直出錯,顯示型別不符或未定義
思維是 先計算表格1的行數(總共需要印出來的小卡張數)
因為每張A4會印4張小卡所以設定pp = 4
總共需要的列印頁數就會等於行數/4 = tn
每份有41行
所以實務上會變成選擇1~41行的小卡表格
貼上第42列
重複執行到 行數X總表格數的次數
Sub 空白盤點小卡複製()
Dim kk As Long '宣告kk為列數的變數
Dim tn As Integer '宣告tn為 頁數的變數
Dim i As Integer '宣告i為張貼列數變化的變數
Dim pp As Integer '宣告pp為變數
kk = Worksheets("表格1").Range("A65535").End(xlUp).Row
pp = 4
tn = (kk \ pp) + 1
i = i * 41
For i = 1 To i * tn Step 1
Worksheets("小卡").Rows("1:41").Select
Selection.Copy
Worksheets("小卡").Rows("i:i").Paste
Next
行數不會超過65535行
因為在SUB的地方直接顯示黃底,底下不知道有沒有錯誤,如果還有其他錯誤的地方
還請不吝賜教,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.180.166.182 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1636901810.A.6F3.html
1F:推 newton41: 沒有End ? 11/14 23:49
2F:→ snow12031: 有End sub 11/15 07:49
3F:→ newton41: i 是什麼? 11/15 08:38
4F:推 a29976137: 用range會不會比較好 11/15 19:46
5F:推 kumasan123: 淺見,定義tn為整數,但tn算式結果有可能非整數? 11/15 20:13
6F:→ max01060926: 我用你的程式碼下去跑 可以順利往下走 你要不要貼圖 11/15 21:30
7F:→ max01060926: 或是錯誤訊息上來? 11/15 21:30
8F:→ waiter337: Rows("i:i") 應該是rows(i & ":" & i) 或者rows(i) 11/15 23:00
9F:→ waiter337: 然後四個dim 都先槓掉 懷疑超標 11/15 23:00
10F:→ waiter337: 最後就是 有超過兩個同名的sub 不能有兩個名稱一樣 11/15 23:01
11F:→ waiter337: 就算不同模組 11/15 23:01
12F:→ waiter337: 還有 i 不要這樣用 改成 11/15 23:03
13F:→ waiter337: j=j*41 11/15 23:03
14F:→ waiter337: For i = 1 to j * tn 不然會無限跑不停 11/15 23:03
15F:→ waiter337: i值超過intrger 因為i值產生自我遞迴了 可能連續放大 11/16 08:04
16F:→ waiter337: 摁 無窮迴圈 For i = 1 To i * tn Step 1 11/16 08:04
17F:→ waiter337: 後面的 i * tn 印象是每迴圈一次 重算一次 11/16 08:05
18F:推 waiter337: 更正 不會產生遞迴 此種寫法 沒有重置迴圈 請參考其他 11/16 09:29
19F:→ waiter337: 問題 11/16 09:29
20F:→ snow12031: ->K大 了解 我會再貼圖上來 ->W大我會再試試看感謝 11/16 15:21
22F:→ snow12031: 但是錯誤訊息變成此處需要物件 需要改kk變數類型還是? 11/16 17:54
23F:→ snow12031: 先前未加Set在前也是同樣錯誤 還請各位不吝指教 11/16 17:54
24F:→ waiter337: kk 不用set 11/16 18:54