作者terrylove12 (空洞)
看板Office
標題[算表] 自訂函數跨工作表問題
時間Wed Jun 13 18:17:04 2018
軟體: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
所以想請問這個函式
如何可以改成跨表格通用的
--
Sent from my
fx-82SX
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.69.128.66
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1528885026.A.330.html
1F:→ soyoso: 用range.resize,rowsize一樣用range.rows.count-1 06/13 18:52
2F:→ newacc: partdata.parent.range 06/13 18:55
3F:→ newacc: 或是用一個with block包起來,裡面用.range 06/13 18:56
4F:→ newacc: with partdata.parent 06/13 18:56
5F:→ newacc: 'codes 06/13 18:56
6F:→ newacc: end with 06/13 18:56
8F:→ soyoso: 如partdata等同於part_pdate的範圍的話,也不用resize 06/13 19:13