gpt4 book ai didi

vba - 打开文件中的宏 如果你在开会,点击 "OK",如果没有,在excel中再次提及

转载 作者:行者123 更新时间:2023-12-04 21:20:29 25 4
gpt4 key购买 nike

我想从表格中发出约会通知。如果已完成,请单击“确定”,并在 B 列中的表格中写入。如果没有,请在下次开发文件时重做。

这就是我所知道的,我不知道如何将 Okay 列 B 放在相应的行中,并使其重新出现。

Private Sub Workbook_Open()
For Each cell In Sheets("appointments").Range("A1:B500")
'''If cell.value = "yes" Then '''By column B
If cell.value = Date Then
MsgBox "appointments" & cell.Offset(0, 4).value, vbExclamation + vbYesNo + vbQuestion, "appointments"
End If
Next cell
End Sub

我将不胜感激任何帮助,想法,概念。

编辑:最后找到正确答案

最佳答案

这里有几个想法

  • 不要使用 cell作为变量。它太接近预定义的对象 (Cells)。相反,请尝试 MyCell (或其他任何东西)。您还需要声明这个变量,它会引导我到 #2
  • Option Explicit .始终在标题
  • 处使用它
  • 设置要循环的动态范围。我猜你只是想遍历Column A从第 2 行(标题?)到最后使用的行
  • 您需要设置 MsgBox作为变量输入,然后构建您的If Then关于结果的声明
  • 考虑使用 vbYesNoCancel .如果你想打开这本书快速检查一些东西而不回答一系列不可避免的弹出窗口怎么办?这不是必需的,但您可以选择 CancelExit Sub


  • 我把你的 MsgBox里的文字拿出来了为了便于阅读。也许您应该将提示更改为 Have you completed [this] appointment?这将产生 Yes 的选项, No , 或 Cancel .
    Option Explicit

    Private Sub Workbook_Open()

    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Appointment")
    Dim MyCell As Range, LRow As Long, Ans As String

    LRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

    For Each MyCell In ws.Range("A2:A" & LRow) '<=== Dynamic Range
    If MyCell = Date Then
    Ans = MsgBox("Select One", vbYesNoCancel)
    If Ans = vbYes Then
    'Do something if YES
    ElseIf Ans = vbNo Then
    'Do something if NO
    ElseIf Ans = vbCancel Then
    'Do something if CANCEL (Exit Sub?)
    End If
    End If
    Next MyCell

    End Sub

    关于vba - 打开文件中的宏 如果你在开会,点击 "OK",如果没有,在excel中再次提及,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52654162/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com