看板 Office 關於我們 聯絡資訊
軟體: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://www.ptt.cc/bbs/Office/M.1528885026.A.330.html
soyoso: 用range.resize,rowsize一樣用range.rows.count-1 06/13 18:52
newacc: partdata.parent.range 06/13 18:55
newacc: 或是用一個with block包起來,裡面用.range 06/13 18:56
newacc: with partdata.parent 06/13 18:56
newacc: 'codes 06/13 18:56
newacc: end with 06/13 18:56
soyoso: https://i.imgur.com/eKYZqEt.jpg 06/13 19:06
soyoso: 如partdata等同於part_pdate的範圍的話,也不用resize 06/13 19:13
soyoso: 有可能就可直接引用 https://i.imgur.com/W5yglxz.jpg 06/13 19:14