Vba 。如果从工作表启动,则查找宏不工作

Vba 。如果从工作表启动,则查找宏不工作,vba,excel,Vba,Excel,我正在尝试使用vba在列中写入一个带有当前日期的“X”。 如果我从调试窗口运行代码,在那里我编写了代码,它按预期工作,但只要我尝试通过单击分配给它的矩形来运行它,它就会显示“未找到” 提前感谢您的帮助或想法 守则: Sub Button() Dim wb As Workbook Dim ws As Worksheet Dim col As Long Dim rng As Range Set wb = ActiveWorkbook Set ws =

我正在尝试使用vba在列中写入一个带有当前日期的“X”。
如果我从调试窗口运行代码,在那里我编写了代码,它按预期工作,但只要我尝试通过单击分配给它的矩形来运行它,它就会显示“未找到”

提前感谢您的帮助或想法

守则:

Sub Button()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim col As Long
    Dim rng As Range

    Set wb = ActiveWorkbook
    Set ws = wb.Sheets("Sheet 2")

    With ws.Cells
        Set rng = .Find(what:=Format(Date))
        If rng Is Nothing Then
            MsgBox "Not found"
            col = 1
        Else
            MsgBox "Found"
            col = rng.Column
        End If
    End With
    ws.Cells(10, col).Value = "X"
    MsgBox "Wrote to Field: " & row & "," & col

End Sub

尝试将格式(日期)替换为CDate(日期)

尝试在Format()函数中包含与您的数据匹配的格式说明。@Gary的学生感谢您的回答,您的意思是这样的
格式(日期,“dd.mm.yyyy”)
?我仍然得到同样的错误。Activeworkbook是你认为的吗?@Harassedad我想是的,至少它在下一行找到了正确的工作表,并且是唯一打开的工作簿。如果我按名字来设定的话,行为也不会改变。好吧,这有点有效。现在,如果我在debug中运行宏,它将不工作,但是如果我单击矩形,它将工作。这太奇怪了好吧,我什么都没改,但今天它也可以在调试屏幕上运行。谢谢