作者bbbsss1986 (老草莓)
看板Office
标题[算表] vba 选定范围复制然後贴到选定的最後一列
时间Tue Apr 9 16:55:39 2019
软体:excel
版本:2013
程式码如下
Dim maxR As Long
Dim sh As Worksheet
Set sh = ActiveSheet
maxR = 2
While sh.Cells(maxR, 1).Value <> ""
maxR = maxR + 1
Wend
maxR = maxR - 1
ref1 = "AP2:BT" & maxR ‘→要复制的范围
Selection.AutoFill Destination:=Range(ref1) =>错误点
MsgBox ("完成!")
一直找不到怎麽解决,恳请大大指点
-----
Sent from JPTT on my HMD Global TA-1052.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.68.34
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1554800141.A.C9B.html
1F:→ soyoso: 看要先range.autofill到ap2:bt2,再从ap2:bt2 04/09 17:07
2F:→ soyoso: range.autofill 到range(ref1) 04/09 17:08
3F:→ bbbsss1986: selection 改成range 吗? 04/09 17:10
4F:→ soyoso: 也可range.copy range(ref1),range.copy的range看要以 04/09 17:10
5F:→ soyoso: selection或是指定储存格 04/09 17:11
6F:→ soyoso: 可以selection或以range、cells来指定 04/09 17:12
7F:→ bbbsss1986: 因为我的列数可能会增加,所以希望能够自动贴上所设定 04/09 17:13
8F:→ bbbsss1986: 第一列的公式,所以要判断到最後一列再从第一列所设定 04/09 17:13
9F:→ bbbsss1986: 的公式向下贴上 04/09 17:13
10F:→ soyoso: 是的,原po回圈while..wend可以看的出来是想要判断从储存 04/09 17:15
11F:→ soyoso: 格a2起判断连续储存格的最後一笔的列号 04/09 17:16
12F:→ soyoso: 先说以这样的回圈是否是最後一列那不一定 04/09 17:17
13F:→ soyoso: 就要看原po的资料是否是连续的了 04/09 17:17
14F:→ bbbsss1986: ref1 ="ap2:bt " &maxR 这个有问题吗? 04/09 17:18
15F:→ soyoso: 这样没有问题,就是字串带入到变数ref1 04/09 17:19
16F:→ bbbsss1986: 所以说,我错误点的地方要改成怎样....我看不大懂 04/09 17:23
17F:→ soyoso: range.autofill就是公式的拖曳,拖曳怎麽拖呢,就是横向或 04/09 17:24
18F:→ bbbsss1986: 对不起,我是上网自学的程度很低 04/09 17:24
19F:→ soyoso: 纵向,也就是要先将selection autofill到ap2:bt2 04/09 17:25
20F:→ soyoso: 接着从ap2:bt2再autofill到range(ref1) 04/09 17:25
21F:→ soyoso: 也就是说autofill要执行二次,第一次看要横向或纵向,第二 04/09 17:29
22F:→ bbbsss1986: selection.autofill destination:=range("ap2:bt2")还 04/09 17:29
23F:→ bbbsss1986: 是错 04/09 17:29
24F:→ soyoso: 次就是纵向或横向 04/09 17:30
25F:→ soyoso: selection的资料是什麽公式? 04/09 17:31
26F:→ soyoso: 我测试selection内是公式是没有错误讯息的 04/09 17:32
27F:→ soyoso: 原文也都没有写selection是什麽资料,测试上我也只能任意 04/09 17:32
28F:→ soyoso: 测试了,谁知道原po实际资料是什麽 04/09 17:33
29F:→ bbbsss1986: ap2:bt2 是我写进cells的公式 04/09 17:34
30F:→ soyoso: 那selection是什麽(公式、值)呢?回文还是没说,selection 04/09 17:36
31F:→ soyoso: 是否在range(ap2:bt2)范围内呢? 04/09 17:36
32F:→ bbbsss1986: 不好意思我不知道selection的作用是什麽,我只是复制 04/09 17:37
33F:→ bbbsss1986: 来使用的... 04/09 17:37
34F:→ soyoso: selection对回文者是个不明确储存格 04/09 17:38
35F:→ soyoso: 以原文来看selection应就是所选取的储存格range 04/09 17:40
36F:→ soyoso: 因是要range.autofill到range("ap2:bt2"),所以selection 04/09 17:44
37F:→ soyoso: 所选取的储存格就应会是ap2这个储存格 04/09 17:44
38F:→ soyoso: 假设所选取的储存格是ao2的话,那range.autofill就会是 04/09 17:45
39F:→ soyoso: range("ao2:bt2") 04/09 17:46
41F:→ soyoso: range要指定储存格字串的 04/09 17:52
42F:→ bbbsss1986: range.autofill destination:=range(ref1)出现错误 04/09 17:52
43F:→ soyoso: 当然会出错 04/09 17:52
44F:→ soyoso: 我打range.autofill只是要让原po再google用的 04/09 17:53
45F:→ soyoso: 微软microsoft docs也就只是range.autofill这样关键字 04/09 17:54
46F:→ soyoso: 我回文我没有办法知道selection是那个储存格,也就没办法 04/09 17:56
47F:→ soyoso: 就打range("ap2").autofill...这样 04/09 17:56
49F:→ soyoso: 且destination所指定不就是range(ref1),带的就是字串 04/09 17:57
50F:→ bbbsss1986: 谢谢s大 这样已经成功跑完了也没问题 04/09 17:58
51F:→ bbbsss1986: 改成range("ap2 :bt2 ).auto fill destination:=range 04/09 18:00
52F:→ bbbsss1986: (ref1)这样可以了 04/09 18:00
53F:→ soyoso: 这样一定出错 04/09 18:01
54F:→ soyoso: 1.range()括号内要双引号 2.是autofill不是auto fill 04/09 18:02
55F:→ soyoso: ^^^^^^指的是"储存格字串" 04/09 18:03
56F:→ bbbsss1986: 修改好了,有试过增加列数公式也都能贴上了,谢谢s大 04/09 18:07