【发布时间】: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 功能不工作。我已经试过了。