返回列表 上一主題 發帖

[發問] 關於Worksheet_SelectionChange如何除錯?

[發問] 關於Worksheet_SelectionChange如何除錯?

  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     Dim rngE As Range
  3.     end1 = [A65536].End(xlUp).Row
  4.     Set rngE = [E1].Resize(end1, 1)
  5.     If Not Intersect(Target, rngE) Is Nothing Then
  6.         If Target = "v" Then
  7.             Target = ""
  8.         Else
  9.             Target = "v"
  10.         End If
  11.     End If
  12. End Sub
複製代碼
滑鼠當點一下E1則E1會自動打勾
但是當滑鼠按住E1往下拉到E2則會出現錯誤
是否能除錯?
如果真的不行~是否可以讓他不要跳出錯誤?
再次感謝各位大大!

好像是因為設定為非陣列,所以會出現錯誤
可以先加上On Error Resume Next 應該可以順利執行
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. On Error Resume Next
  3.     Dim rngE As Range
  4.     end1 = [A65536].End(xlUp).Row
  5.     Set rngE = [E1].Resize(end1, 1)
  6.     If Not Intersect(Target, rngE) Is Nothing Then
  7.         If Target = "v" Then
  8.             Target = ""
  9.         Else
  10.             Target = "v"
  11.         End If
  12.     End If
  13. End Sub
複製代碼
動念成因積因成果 by huijuang

TOP

回復 1# av8d


    在if not 那排字的上一行輸入『on error resume next』,可以呼略錯誤,
    可是你出現v後,再往下拉,v又都不見了耶,可以請問你這設計的目的嗎?

TOP

回復 1# av8d
除非是不可預期的錯誤,盡量避免使用On Error Resume Next
應針對錯誤點修正
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     Dim rngE As Range
  3.     end1 = [A65536].End(xlUp).Row
  4.     Set rngE = [E1].Resize(end1, 1)
  5.     If Not Intersect(Target, rngE) Is Nothing Then
  6.         If Target(1) = "v" Then
  7.             Target(1) = ""
  8.         Else
  9.             Target(1) = "v"
  10.         End If
  11.     End If
  12. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 av8d 於 2014-3-14 16:34 編輯

回復 4# Hsieh


    謝謝H大的修正~也謝謝其他大大的幫忙~
讓我同時學習了兩樣寫法

我想請問是否有辦法
當滑鼠按住E1往下拉到E2的時候
E1、E2同時被打勾呢?再次感謝!

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題