作者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/cn.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