0

添付されているのは、ワークシートで使用しているコードです。このコードは最後のビットまで機能します。最後のコードの最初の行はエラーがどこにあるかです...Private Sub Worksheet_SelectionChange(ByVal Target As Range)理由を知りたいのですが、他の2つのサブジェクトで機能するようです。

誰かがそれを助けることができるならば、それは大いに感謝されます。

Option Explicit

Dim PreviousValue

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sLogFileName As String, nFileNum As Long, sLogMessage As String
    Dim NewVal

    On Error GoTo Whoa

    Application.EnableEvents = False

    sLogFileName = ThisWorkbook.path & Application.PathSeparator & "Open Order Log.txt"

    If Not Target.Cells.Count > 1 Then
        If Target.Value <> PreviousValue Then
            If Len(Trim(Target.Value)) = 0 Then _
            NewVal = "Blank" Else NewVal = Target.Value

            sLogMessage = Now & Application.UserName & _
            " changed cell " & Target.Address & " from " & _
            PreviousValue & " to " & NewVal

            nFileNum = FreeFile
            Open sLogFileName For Append As #nFileNum
            Print #nFileNum, sLogMessage
            Close #nFileNum
        End If

    End If
LetsContinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume LetsContinue
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    PreviousValue = Target(1).Value
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim sLogFileName As String
End Sub
    If FileLen(sLogFileName) > 3145728# Then
        sLogFileName = "Open Order Log - " & Format(Date, "dd-mm-yyyy")
        Name sLogFileName As "ThisWorkbook.path & Application.PathSeparator & \Temp\Open Order Log - " & Format(Date, "dd-mm-yyyy")
    End If
End Sub
4

3 に答える 3

2

End Subの後に閉じましたがDim sLogFileName As String、これは間違っています。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim sLogFileName As String
    If FileLen(sLogFileName) > 3145728# Then
        sLogFileName = "Open Order Log - " & Format(Date, "dd-mm-yyyy")
        Name sLogFileName As "ThisWorkbook.path & Application.PathSeparator & \Temp\Open Order Log - " & Format(Date, "dd-mm-yyyy")
    End If
End Sub
于 2012-08-31T12:56:59.330 に答える
0

次のコードが定義されています。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    PreviousValue = Target(1).Value
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim sLogFileName As String
    'other stuff
End Sub

両方ともと呼ばれる2つの異なる潜水艦がありWorksheet_SelectionChangeます。どちらを使用するかを決定し、もう一方の名前を変更/削除する必要があります。

于 2012-08-31T20:32:44.757 に答える
0

問題を解決しEnd Subました。同じ名前の以前の投稿によって削除された後の2つの登録者...

Private Sub Size_Adjust(ByVal Target As Range)
    Dim sLogFileName As String
    If FileLen(sLogFileName) > 3145728# Then
        sLogFileName = "Open Order Log - " & Format(Date, "dd-mm-yyyy")
        Name sLogFileName As "ThisWorkbook.path & Application.PathSeparator & \Temp\Open Order Log - " & Format(Date, "dd-mm-yyyy")
    End If
End Sub
于 2012-08-31T13:35:44.227 に答える