[問題] VBA錯誤

作者: snow12031 (Q我的人是手養嗎)   2021-11-14 22:56:46
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體: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的地方直接顯示黃底,底下不知道有沒有錯誤,如果還有其他錯誤的地方
還請不吝賜教,謝謝。
作者: newton41 (Newton)   2021-11-14 23:49:00
沒有End ?
作者: snow12031 (Q我的人是手養嗎)   2021-11-15 07:49:00
有End sub
作者: newton41 (Newton)   2021-11-15 08:38:00
i 是什麼?
作者: a29976137 (billy)   2021-11-15 19:46:00
用range會不會比較好
作者: kumasan123 (熊先生)   2021-11-15 20:13:00
淺見,定義tn為整數,但tn算式結果有可能非整數?
作者: max01060926 (豬頭人身)   2021-11-15 21:30:00
我用你的程式碼下去跑 可以順利往下走 你要不要貼圖或是錯誤訊息上來?
作者: waiter337 (給開司一罐蘇格登)   2021-11-15 23:00:00
Rows("i:i") 應該是rows(i & ":" & i) 或者rows(i)然後四個dim 都先槓掉 懷疑超標最後就是 有超過兩個同名的sub 不能有兩個名稱一樣就算不同模組還有 i 不要這樣用 改成j=j*41For i = 1 to j * tn 不然會無限跑不停i值超過intrger 因為i值產生自我遞迴了 可能連續放大摁 無窮迴圈 For i = 1 To i * tn Step 1後面的 i * tn 印象是每迴圈一次 重算一次更正 不會產生遞迴 此種寫法 沒有重置迴圈 請參考其他問題
作者: snow12031 (Q我的人是手養嗎)   2021-11-16 15:21:00
->K大 了解 我會再貼圖上來 ->W大我會再試試看感謝https://imgur.com/tWbSiPK 依照上述意見稍微修改但是錯誤訊息變成此處需要物件 需要改kk變數類型還是?先前未加Set在前也是同樣錯誤 還請各位不吝指教
作者: waiter337 (給開司一罐蘇格登)   2021-11-16 18:54:00
kk 不用set

Links booklink

Contact Us: admin [ a t ] ucptt.com