[问题] 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