返回列表 上一主題 發帖

[發問] 請教語法是哪裡出問題?

抱歉!分享一下,我想出來的語法是這樣,結果試了也沒問題。
Sub Worksheet_Activate()
    '個人成績單標題列↓'
    Dim a, b, c, x, y
    a = Sheets("基本設定").Range("j1").Value
    b = Sheets("基本設定").Range("j2").Value
    c = Sheets("基本設定").Range("j3").Value
    d = Fix(c / 2)
    For i = 0 To d
    x = Sheets("期中評量").Range("a" & 3 + i * 2).Value
    y = Sheets("期中評量").Range("b" & 3 + i * 2).Value
    x1 = Sheets("期中評量").Range("a" & 4 + i * 2).Value
    y1 = Sheets("期中評量").Range("b" & 4 + i * 2).Value
    Sheets("期中成績單").Range("a" & 1 + 12 * i).Value = a & "年" & b & "班 期中評量 成績單" & "(" & x & ")" & y
    Sheets("期中成績單").Range("o" & 1 + 12 * i).Value = a & "年" & b & "班 期中評量 成績單" & "(" & x1 & ")" & y1
    Next i
    '個人成績單標題列↑'
End Sub

TOP

回復 21# skyutm
善用 With 與 縮排(次一級區塊內的程式左方多幾個空格) 會讓程式更容易閱讀與維護:
  1. Sub Worksheet_Activate()
  2.     '個人成績單標題列↓'
  3.     Dim a, b, c, x, y
  4.    
  5.     With Sheets("基本設定")
  6.       a = .Range("j1").Value
  7.       b = .Range("j2").Value
  8.       c = .Range("j3").Value
  9.     End With
  10.    
  11.     d = Fix(c / 2)
  12.    
  13.     For i = 0 To d
  14.       With Sheets("期中評量")
  15.         x = .Range("a" & 3 + i * 2).Value
  16.         y = .Range("b" & 3 + i * 2).Value
  17.         x1 = .Range("a" & 4 + i * 2).Value
  18.         y1 = .Range("b" & 4 + i * 2).Value
  19.       End With
  20.    
  21.       With Sheets("期中成績單")
  22.         .Range("a" & 1 + 12 * i).Value = a & "年" & b & "班 期中評量 成績單" & "(" & x & ")" & y
  23.         .Range("o" & 1 + 12 * i).Value = a & "年" & b & "班 期中評量 成績單" & "(" & x1 & ")" & y1
  24.       End With
  25.     Next i
  26.     '個人成績單標題列↑'
  27. End Sub
複製代碼

TOP

回復 22# luhpro


    恩!果然看起來舒服多了

TOP

請教一下,這算是vba的語法嗎?因為裡面有中文字?這是我從vba專案裡頭複製出來的一部份
Sub Worksheet_Deactivate()
     原年級 = Val(Cells(12, 2))
     新年級 = Val(Cells(1, 18))
     Cells(12, 2) = 新年級
  If 新年級 > 2 And Cells(14, 20) <> 0 Then '強迫3~6年級時,基本工作表 T14儲存格值為0
     Cells(14, 20) = 0
  End If

TOP

本帖最後由 c_c_lai 於 2012-9-9 09:47 編輯

回復 24# skyutm
沒錯!變數或者是函式是可以以中文字來表現的, 譬如:
  1. Option Explicit
  2. Public Ar, 圖表底色
  3. Public Const 資料數區 = "A8:F8"
  4. 'Public Const 圖表底色 = 6

  5. Private Sub Auto_Open()
  6.     Sheets("Omega").Activate
  7.     控制項
  8. End Sub

  9. Private Sub Auto_Close()
  10.     Sheets("Omega").Activate
  11.     控制項
  12.     ThisWorkbook.Save
  13. End Sub

  14. Private Sub 控制項()
  15.     ' ...........
  16. End Sub
複製代碼
是比較易於清晰易懂,但如果該程式用於其它國家地域的話
會造成困擾的 (變成亂碼)。

TOP

我又學到一招了,我一直以為中文字要加""才行,不然電腦會出現錯誤!

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題