【问题标题】:Skip input box or any error message跳过输入框或任何错误信息
【发布时间】:2023-04-11 06:12:01
【问题描述】:

我从一个临时 Excel 工作簿运行 VBA,它将执行“在另一个路径中打开启用宏的 Excel 并将单元格 C3 中的值提取到临时 Excel”。但问题是每当我从该路径打开 Excel 工作簿时,它都会显示两个框。

1) 一些错误(我不知道错误名称,因为该 Excel 文件中的宏受密码保护,否则建议如何发送“Enter”键,从而跳过此错误。)

2) 输入框(本例我只需要回车即可。)

有什么方法可以从其他关闭的工作簿中获取数据验证下拉值而不打开它。

Sub macro1()
 Dim wrk As Workbook
 Set wrk = Workbooks.Open("D:\Test\Test.xlsm") Workbooks("Book1.xlsm").Activate
 ActiveSheet.Range("h10") = wrk.Sheets(1).Range("c2").Validation.Formula1 wrk.Close SaveChanges:=False 
End Sub

上面是我现在实际使用的代码。但是这段代码会打开文件。我需要值而不打开文件。

【问题讨论】:

  • 也许看看SendKeys
  • 能分享一下这两张的截图吗? Here 是处理这些盒子的可靠方法。它使用 APIS 而不是 Sendkeys
  • Sub macro1() Dim wrk As Workbook Set wrk = Workbooks.Open("D:\Test\Test.xlsm") Workbooks("Book1.xlsm").Activate ActiveSheet.Range("h10 ") = wrk.Sheets(1).Range("c2").Validation.Formula1 wrk.Close SaveChanges:=False End Sub 上面的代码我在临时文件上使用它。当尝试打开“Test.xlsm”时,它会显示我在问题中提到的 2 个框。
  • Sendkeys 功能不工作。我已经试过了。

标签: excel vba inputbox


【解决方案1】:

试试

Dim xlApp, xlBook, xlSht, my_file
  my_file= Application.GetOpenFilename
If my_file = "False" Then Exit Sub

Set xlApp = CreateObject("Excel.Application")
    xlApp.EnableEvents = False

Set xlBook = xlApp.Workbooks.Open(my_file)
Set xlSht = xlApp.ActiveSheet

'YOUR CODE HERE

xlBook.Close False
xlApp.Quit
Set xlSht = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

密钥是xlApp.EnableEvents = False,这将禁用其他工作簿上的所有宏。

希望这会有所帮助。

【讨论】:

  • 请查看更改后的答案。
  • 谢谢 Gedeon Kheboyan。 它对我有用。但是我在我的测试了这个案例。但真正的工作是我需要在我的 office 中的 official filetest 这个案例。在我的 reel test 中,它跳过了输入框。这太棒了。但在我的 real test 中,它会在文件打开时显示 1 个错误消息和 1 个输入框。所以明天我需要检查这个宏。
  • 不客气。此代码应跳过第二个工作簿上的任何 VBA 代码。所以,我认为它不会显示任何错误消息和输入框。
  • Excel 无法从其他工作簿中获取数据而不打开它。在我上面提到的代码中,excel 将在后台打开文件,所以你不会看到它。 xlBook.Close False xlApp.Quit Set xlSht = Nothing Set xlBook = Nothing Set xlApp = Nothing此部分将在处理结束后关闭工作簿。
  • Gedeon Kheboyan 我对 ExecuteExcel4Macro() 函数表示怀疑,该函数将在其他 excel 文件中执行命令而无需打开工作簿。我不知道如何使用此功能。这就是我问的原因。
猜你喜欢
  • 1970-01-01
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-31
  • 2014-10-01
  • 1970-01-01
相关资源
最近更新 更多