0

附件是我在工作表中使用的代码。这段代码直到最后一点都有效。最后一个代码的第一行是错误所在...Private Sub Worksheet_SelectionChange(ByVal Target As Range)我想知道为什么,它似乎适用于其他两个主题。

如果有人可以帮助它,将不胜感激。

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 SubDim 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

你有两个不同的潜艇都叫Worksheet_SelectionChange. 您需要确定要使用哪个并重命名/删除另一个。

于 2012-08-31T20:32:44.757 回答
0

解决了这个问题,两个SubsEnd Sub被之前的帖子删除后同名...

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 回答