[算表] (已解决)ExcelVBA Range设定自己跳掉

楼主: ProTrader (没有暱称)   2016-10-28 02:12:21
软件:Excel VBA
版本:2016
例如:
Set Rng = Range( Cells(11,1),Cells(15,100) )
结果选取的区域会自己跳掉 Cells(11,1)会不见
虽然改成下列设定也可达成目标 让Cells(10,1)不见
Set Rng = Range( Cells(10,1),Cells(15,100) )
有人知道Range设定后跳掉的原因吗??
===================================================
相同的语法 在之前的测试是完全正常可用的
后来多次整合其他部分的模组后 才变这样的
Set Rng = Range( Cells(11,1),Cells(15,100) )
===> Set RngX = Range( Cells(12,1),Cells(15,100) )
Set RngY = Range( Cells(11,2),Cells(15,100) )
看图示感觉像分别选取 RngX RngY
所以实际上可用的是RngX
至于相关语法部分
Set RngA = Range( Cells(11,1),Cells(11,100) )
Set RngB = Range( Cells(12,1),Cells(12,100) )
Set RngC = Range( Cells(13,1),Cells(13,100) )
Set RngD = Range( Cells(14,1),Cells(14,100) )
Set RngE = Range( Cells(15,1),Cells(15,100) )
我另外有设定这5个区域 Rng = RngA + RngB + RngC + RngD + RngE
应该不是选位置的问题 因为之前测试的时候完全OK
================================================================
已确认原因 Rng范围正确 但不能空白
range.activate的(1,1)是空白的
若以空白Range直接设定 就会发生跳掉1格的问题
若以有值Range设定 就能正常使用
我也是用Range直接传资料
要用有值的储存格才能设定正确Range
感谢两位
作者: waiter337 (给开司一罐苏格登)   2016-10-28 07:02:00
请问有变量或者前后面有没有其他相关语句不小心点到也可能我会建议你先在上一行用select 做个测试 比较准没问题在把select 注掉Range( Cells(11,1),Cells(15,100) ).select希望有帮助到
作者: soyoso (我是耀宗)   2016-10-28 07:05:00
原po是指这样吗?http://imgur.com/Shc8LS1
作者: waiter337 (给开司一罐苏格登)   2016-10-28 07:06:00
中断点就设置在测试这段,在f8测下去
作者: soyoso (我是耀宗)   2016-10-28 07:07:00
如果是的话,这为作用储存格,range.activate
作者: waiter337 (给开司一罐苏格登)   2016-10-28 07:14:00
另外一个方向,或许不是你要的,但或许有相关我之前在复制资料的时候,用select copy past这类的语法后来我修改成直接= 丢过去,就卡住了,时常也会有没选到的情况,这时后,如果是"范围的资料",要=到新的位置那么你新的位置的大小,要跟旧的一样大,所以要找出范围的长宽不过我遇到的状况是比较蠢的,我忘了我贴上的位置在一两万列那里,所以以为没贴上资料-,-

Links booklink

Contact Us: admin [ a t ] ucptt.com