【问题标题】:InputBox Function to Edit Macro用于编辑宏的 InputBox 函数
【发布时间】:2018-06-26 18:34:28
【问题描述】:
Windows("XXX Consolidated PL 03312018.xlsx").Activate
ActiveCell.Offset(187, 8).Range("A1").Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select

如何创建宏或 InputBox 函数来更改数字“03312018”?

数字代表一个日期。每个月电子表格都会更改,因此我想手动输入新数字。

【问题讨论】:

标签: excel vba inputbox


【解决方案1】:

这样的事情会奏效。尽管您可能希望在继续执行代码之前验证该条目:

Dim MyDate as Variant
MyDate = Inputbox ("Input Date Serial")

Windows("XXX Consolidated PL " & MyDate & ".xlsx").Activate

【讨论】:

  • 你太棒了。非常感谢你。我试图弄清楚几个小时。
  • 请参阅 QHarr 的解决方案。我会解决这个问题,但这里已经解决了。未找到工作簿,因此输入了错误的#、工作簿未打开或文件字符串名称不一致。
  • 我打开了新的工作簿,它起作用了。抱歉——我以为它只是改变了数字。再次感谢您。
【解决方案2】:

类似:

Option Explicit 
Public Sub test()
    Dim wkbk As String, dateVar As String
    'dateVar = "03312018"
    dateVar = Application.InputBox("Enter date string")
    If dateVar = vbNullString Then Exit Sub
    wkbk = "XXX Consolidated PL " & dateVar & ".xlsx"
    On Error GoTo Errhand
    Windows(wkbk).Activate
    'other code
    Exit Sub
Errhand:
    If Err.Number <> 0 Then
        Select Case Err.Number
        Case 9
            MsgBox "Workbook not found"
            'Other handling
        End Select
    End If
End Sub

【讨论】:

  • 将代码粘贴到命令按钮后不会弹出输入框
  • 命令按钮是否调用子测试?顺便说一句,你会重命名。
  • 检测到不明确的名称。不过谢谢你——urdearboy 的解决方案有帮助
  • 那么你还有一个叫做测试的东西。您只需要将名称更改为独特的名称。公共子GetDateString()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多