返回列表 上一主題 發帖

請教語法上的問題?

請教語法上的問題?

各位先進大家好!約莫六年前小弟開始學習vba語法,為的是設計一個可以計算成績的excel檔,

但是後來成績系統都已經改成網路化了,所以我的 excel檔就擱置了,一直到了最近。因為

成績系統改版,所以我又把excel檔拿出來使用了,但是人事已非,我完全忘了語法怎麼使用。

想請教一個語法問題:我想要在打開「總成績」的工作表時,「總成績」的c2欄位就會自動複製

「國平時」工作表的Q2:Q22的數值,所以寫了下列語法,但是不知哪裡有錯,還請指正。感謝

Sub 自動複製成績()
Sheets("國平時").Range("Q2:Q22").Select
Selection.Copy
Sheets("總成績").Range("C2").Select
ActiveSheet.Paste
End Sub

回復 5# skyutm
感謝兩位先進的解答,小弟測試之後果然可以執行,但是問題又來了,

因為前面所說的「國平時」工作表的q2到22欄位是由前面算出平均的,

所以在「總成績」複製之後會出現=AVERAGE(#REF!)這樣的訊息,我推測應該是

應該更換了工作表,所以算不出成績,不知該如何解決呢?謝謝。

TOP

回復 7# iamaraymond


  
是的!它應該複製到公式了。我剛剛也在網路上尋找,是否有選擇性貼上的語法嗎?

TOP

回復 9# iamaraymond

感謝您的幫助,可是程式碼無法自動執行ㄝ,我來整合看看。

TOP

回復 10# skyutm

哈哈!真是有趣。我把程式碼整合在一起就可以了。

'******ThisWorkbook模組的程式碼********
Option Explicit

'**活頁簿開啟時自動執行
Private Sub Workbook_Open()
    自動複製成績
End Sub
'**活頁簿:工作表中移動時自動執行
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name = "總成績" Then 自動複製成績
End Sub
Sub 自動複製成績()
Sheets("國平時").Range("s2:s22").Copy
Sheets("總成績").Activate
Sheets("總成績").Range("C2").PasteSpecial Paste:=xlPasteValues
End Sub

TOP

回復 13# GBKEE

哇!感謝版主,果然是有深度的語法。

TOP

        靜思自在 : 道德是提昇自我的明燈,不該是呵斥別人的鞭子。
返回列表 上一主題