標題:
[發問]
請問不同工作表的變數如何設?
[打印本頁]
作者:
skyutm
時間:
2012-8-22 22:43
標題:
請問不同工作表的變數如何設?
各位先進大家好,小弟又來打擾了。又有問題求助。我的成績系統第一個工作表是設定比例,第二個工作表是填入成績。第三個則是成績總表。問題是:假設國語
的加權比例是sheet1 c2這一格,國語成績輸入欄是sheet2 c3這一格,成績單國語欄是sheet3 c5 ,請問1.這種跨工作表變數的語法要怎麼寫,麻煩各位了(我知道算式怎麼寫,但是不同工作表則不懂)!2.這種語法是不是應該寫在sheet2 的 worksheet_change 呢?萬分感謝!
作者:
luhpro
時間:
2012-8-25 03:29
... 這種跨工作表變數的語法要怎麼寫 ...
skyutm 發表於 2012-8-22 22:43
儲存格的引用可以用好幾種方式,
底下舉幾個比較簡單易用的:
1. Sheet名稱.[儲存格]
例 : Sheet1.[c2] = 120 '加權比例
Sheet2.[c3] = 86 '國語成績輸入欄
Sheet3.[c5] = Sheet2.[c3] '成績單國語欄
2. Sheets("工作表名稱").Cells(儲存格列序, 儲存格欄序)
Sheets("Sheet1").Cells(2, 3) = 120 '加權比例
Sheets("Sheet2").Cells(3, 3) = 86 '國語成績輸入欄
Sheets("Sheet3").Cells(5, 3) = Sheets("Sheet2").Cells(3, 3) '成績單國語欄
3. 設定 Sheet 指標, 然後以指標代替 Sheet 名稱來引用
Dim sh1 As Sheet1, sh2 As Sheet2, sh3 As Sheet3
Set sh1 = Sheet1
Set sh2 = Sheet2
Set sh3 = Sheet3
sh1.Range("c2") = 120 '加權比例
sh2.Range("C3") = 86 '國語成績輸入欄
sh3.Range("C5") = sh2.Range("c3") '成績單國語欄
上述方式中, Sheet 引用方式與 儲存格 引用方式都可以互相代換,
例如你可以用
Sheet1.Cells(2, 3) = 120 '加權比例
這裡要略微提一下 Office 說明中不友善的地方, (我用的是 2003 版)
若我們用 工作表 或 儲存格 來搜尋相關的使用方式,
會發現找不到想要的說明,
而要用 Range 或 Sheets 才能 (若用 Sheet 也不能) 找到 使用 Range 物件參照儲存格 或 使用名稱參照工作表 之類的說明,
我剛學習 Excel VBA 時往往浪費很多時間在找想要看的說明與範例,
有時還真的滿容易讓人洩氣的.
作者:
GBKEE
時間:
2012-8-25 06:39
回復
1#
skyutm
'宣告變數為公用變數,可在任何模組中呼叫
'此公用變數如在物件模組中,於其他模組中呼叫須加上模組名稱 如 Sheet1.加權比例
'此公用變數如在一般模組中,於其他模組中呼叫不須加上模組名稱如 加權比例
Option Explicit
Public 加權比例 As Range
Public 國語成績 As Range
Public 成績單國語 As Range
Sub Ex()
Set 加權比例 = Sheet1.[c2]
Set 國語成績 = Sheet2.[c3]
Set 成績單國語 = Sheet3.[c5]
End Sub
複製代碼
作者:
skyutm
時間:
2012-8-25 22:08
感謝兩位先進,小弟此階段的語法已經完成,再次感謝!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)