標題:
如何避免儲存格公式,因『剪下』『貼上』而被修改?
[打印本頁]
作者:
eigen
時間:
2017-6-11 17:27
標題:
如何避免儲存格公式,因『剪下』『貼上』而被修改?
如何避免儲存格公式,因『剪下』『貼上』而被修改?
sheet2 a1= Sheet1!a1
sheet2 b1= Sheet1!b1
sheet2 c1= Sheet1!c1
sheet2 a2= Sheet1!a2
sheet2 b2= Sheet1!b2
sheet2 c2= Sheet1!c2
以此類推
我要固定 sheet2 的公式,不能因為 sheet1 的儲存格 『剪下』『貼上』而被修改
一、我試了將 sheet2 工具->保護->保護工作表
結果『剪下』『貼上』 公式還是變了
二、我試著用indirect("Sheet1!a1",1)的方式來取代,公式是不會變了,
相關公式共有 15453個, 程式容量卻大了30%,多了750k ,整個檔案的開啟速度也變慢了
為了產生15453個公式,我還刻意用 vba 來產生。
三、目前我還能想到的就是在寫個巨集,在程式開啟動,主動更新整個 sheet2的公式,
這樣的方式,不能確保開啟後公式不被使用者修改
使用者下次重新開啟才能確保sheet2 公式正確。
還有更好的做法嗎?
作者:
ikboy
時間:
2017-6-12 10:47
回復
1#
eigen
Try this:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = 0
With Sheets(1)
[a1:c1] = .[a1:c1].Value
End With
Application.ScreenUpdating = 1
End Sub
複製代碼
作者:
eigen
時間:
2017-6-14 08:45
回復
2#
ikboy
謝謝,不能直接填值,只能公式
我試了 indirect offset index
目前看來 index 最省空間~~ index < offset < indirect
而且直接填寫 1 2 3 4 會比用 row() column() 省空間
我還是做一個被動方式來處理,也許就像上面的 worksheet_activate 時才更新一次所有公式~~
作者:
linyancheng
時間:
2018-6-9 23:22
回復
3#
eigen
若儲存格是相連續的,可以使用陣列公式。
譬如:
{=Sheet1!A1:B10}
作者:
准提部林
時間:
2018-6-13 09:52
如果公式就這麼簡單的單一儲存格取值,
可試試"定義名稱"!!
作者:
handsometrowa
時間:
2020-4-7 15:15
回復
4#
linyancheng
那請問如果儲存格不是連續的
A2:O2 這一排資料要貼到 A10:O10 當中有沒有存在的資料格
但是資料(數值)要貼過去,但是公式也要過去呢....@@"
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)