[算表] (已解決)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