大家好
事情是這樣的
因為需要比對去年與今年的業績所以必須將每日公式貼到下一個頁籤中

內文的公式大概是這樣的
='C:\My Documents\Daily\[106年業績.xls]02'!$H4
='C:\My Documents\Daily\[106年業績.xls]02'!$H5
='C:\My Documents\Daily\[106年業績.xls]02'!$H6
最後的數字部分依序往下加
要貼到下一個活頁簿裡然後將選取的區域取代應對欄位
='C:\My Documents\Daily\[106年業績.xls]02'!$I4
='C:\My Documents\Daily\[106年業績.xls]02'!$I5
='C:\My Documents\Daily\[106年業績.xls]02'!$I6

目前這個部份都要人工去一列一列取代,請問有比較簡便的做法嗎?
一開始是想到看可不可以用vba來處理,但是不太會使用
目前想到幾個比較有問題的部分
首先是要怎麼把公式複製進剪貼簿
複製進去後可以用right函數把$後的英文字取出在+1上去
這樣H就會變成I了
不過會有到第10格right取的位置就不對了的問題
='C:\My Documents\Daily\[106年業績.xls]02'!$H4
='C:\My Documents\Daily\[106年業績.xls]02'!$H10
(必須用圈選區域全部複製再貼上的原因,是因為中間還有部分加總的區域)
不過就算取英文的這個部分解決了還是有 Z+1=AA的問題
我是有查到一個別人寫好的,不過我不會調用function
'*****************************************************************************
'將Excel中列數轉換為列名(如27列--->AA列)
'參數:var 列數
'返回:列名 string
'*****************************************************************************
Public Function ChgNumToABC(ByVal var As Integer) As String
Dim res As String
Dim remainder As Integer '餘數
Dim quotient As Integer '商
remainder = var Mod 26
If remainder = 0 Then
var = var - 26
remainder = 26
End If
quotient = var \ 26
If quotient <> 0 Then
res = ChgNumToABC(quotient)
End If
ChgNumToABC = res & Chr(remainder + 65 - 1)
End Function
有人可以指導一下該如何做處理嗎?
附件為實際檔案(當然後面的天數先刪除了)
實際上操作的具體動作是把sheet"01"的C4:D45複製到"02"的C4:D45
然後對"02"做兩次取代(圈選區域)
把$C改成$D再把$B改成$C
然後後面的每一天都重覆這個動作
所以會出現要把$Z取代成$AA的情況
附加壓縮檔: 201802/mobile01-51f6e96d539790a98cf5cad719c08b9b.zip