返回列表 上一主題 發帖

[發問] 不知道哪裡出問題 執行階段錯誤

回復 3# j88141
Worksheet_Change事件程序,是在工作表內容改變時觸發
你在參數中設置了ByVal myRange As Range
代表改變的儲存格是myRange
你沒必要在程序內又設置Set myRange = 工作表1.Range("A1")
雖然這樣設置如果是在同一工作表內並無不可
但是,如果要在程序中用到取得當前變化之儲存格時就會喪失
猜測看看是否是你要的
  1. Private Sub Worksheet_Change(ByVal myRange As Range)
  2. If Intersect(myRange, [B1:B10]) Is Nothing Then Exit Sub '變動儲存格不在B1:B10則退出程序
  3.    Range("A1") = Application.Sum([B1:B10])     '儲存格A1 等於  SUM(B1:B10)

  4.        If Range("A1") >= Range("E1") And Range("A1") <= Range("G1") Then
  5.        '如果 儲存格A1 大於等於 儲存格E1 和 小於儲存格G1的話

  6.             MsgBox Range("D1") & 和& & Range("F1"), vbOKOnly
  7.        '顯示.....

  8.        ElseIf Range("A1") < Range("E1") Then
  9.        '如果儲存格A1小於儲存格E1

  10.             Range("A1").Interior.ColorIndex = 3
  11.             '儲存格顯示紅色
  12.   
  13.        ElseIf Range("A1") > Range("F1") Then
  14.        '如果儲存格A1大於儲存格F1

  15.             MsgBox Range("E1") & "和&" & Range("G1"), vbCritical
  16.        '顯示.....
  17.       
  18.       End If
  19. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題