2017-09-07 1 views
0

이 코드를 Excel 시트에서 만들 모든 시트와 새 시트에서 작동시키는 방법을 궁금합니다. 새로운 시트 도움을 주신 모든 분들께 감사드립니다.여러 시트에서 VBA 코드를 실행하는 방법은 무엇입니까?

Dim cmt As Comment 
    Dim charCount As String 
    Dim prevTarget As Range 
    Sub Worksheet_C(ByVal Target As Range) 
    If Target.Value <> Empty Or Target.Value <> "0" Then 
      If Target.Value <> Empty Then 
      Set prevTarget = Target 
      Set Target = Target 
      End If 
     Set cmt = prevTarget.Comment 
      If Target = Empty Then 
      Set prevTarget = Target 
      End If 
      If cmt Is Nothing Then 
      'MsgBox "There is no comment" 
      ElseIf Len(cmt.Text) > 150 Then 
      charCount = Len(cmt.Text) 
      MsgBox "Character Limit is 150. Your comment contains " + charCount + "." 
      End If 
    End If 
End Sub 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Call Worksheet_C(Target) 
End Sub 

답변

0

ThisWorkbookWorkbook_SheetSelectionChange() 모든 시트 실행 witll : 에서


모듈에서 ThisWorkbook :

Option Explicit 

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
    RestrictCommentSize Target 
End Sub 

Module1의 (새로운 일반 VBA 모듈) 수 니티 아가 들어있다. (약간 정리) L 하위 Worksheet_C


Option Explicit 

Public Sub RestrictCommentSize(ByVal Target As Range) 
    With Target 
     If .CountLarge = 1 Then 
      If Len(.Value2) <> 0 And .Value2 <> "0" And Not .Comment Is Nothing Then 
       If Len(.Comment.Text) > 150 Then 
        Dim msg As String 
        msg = "Your comment contains " & Len(.Comment.Text) & " characters" 
        MsgBox msg & vbCrLf & vbCrLf & "(more than the max of 150)" 
       End If 
      End If 
     End If 
    End With 
End Sub 
0

Worksheet_SelectionChange 워크 시트의 특정 루틴입니다.

수동으로 새 시트를 만드는 경우 시트를 폴링하고 코드가 있는지 확인하기 위해 백그라운드 프로세스를 실행하지 않는 한 시트의 VBA 내용을 쉽게 제어 할 수 없습니다.

그러나 시트가 코드로 작성된 경우 시트 특정 VBA 코드도 생성하는 코드를 추가 할 수 있습니다.

관련 문제