[算表] 自訂函數跨工作表問題

作者: terrylove12 (空洞)   2018-06-13 18:17:04
軟體:Excel VBA
版本: 2007 , 2016
各位高手們好
小弟為了工作方便 寫了一個自訂函式想處理日期及進度的內插作業
其函式名稱為workrate
然後輸入的變數為 workrate(partdata As range,ndate As single)
(變數都用 ByVal)
然後要取得partdata的位置
part_r = partdata.Row '獲取預定進度資料位置(第1格的row值)
part_rcount = partdata.Rows.Count '獲取預定進度資料Row數
part_c = partdata.Column '獲取預定進度資料位置(第1格的column值)
並且設定一個range變數為其資料
Set part_pdate = Range(Cells(part_r, part_c), _
Cells(part_r + part_rcount - 1, part_c))
但這邊就會出現問題
因為直接用Range 變成是指定ActiveWorkSheet
所以 假設輸入的 partdata 是另個活頁簿的
就會#VALUE
所以想請問這個函式
如何可以改成跨表格通用的
作者: soyoso (我是耀宗)   2018-06-13 18:52:00
用range.resize,rowsize一樣用range.rows.count-1
作者: newacc (XD)   2018-06-13 18:55:00
partdata.parent.range或是用一個with block包起來,裡面用.rangewith partdata.parent'codesend with
作者: soyoso (我是耀宗)   2018-06-13 19:06:00
https://i.imgur.com/eKYZqEt.jpg如partdata等同於part_pdate的範圍的話,也不用resize有可能就可直接引用 https://i.imgur.com/W5yglxz.jpg

Links booklink

Contact Us: admin [ a t ] ucptt.com