我有一个包含2个工作表的Excel文件。
interface MyCallback {
(...args: any[]): any;
}
包含在单元格D3中创建的下拉列表,其中包含国家/地区列表和“发布”字样。按钮。
Sheet1
包含"国家/地区名称"列A中的列和B,C,D等各自的Web链接。例如,对于A1中的国家/地区名称为澳大利亚,相应的Web链接位于B1,C1,D1等中。
单击启动按钮,它应该打开连续可用的该国家/地区的所有链接。如何在Excel VBA中实现这一目标?
样本表可在以下位置查看:
https://docs.google.com/spreadsheets/d/17PqwEvrvO4JCaK5PNzK_D-JQfW3aj4KzZ2R40QBp2V8/edit?usp=sharing
答案 0 :(得分:0)
通过将按钮链接到宏LaunchWebPages
来尝试以下代码。
启动网页的方法是使用运行exe的Shell
命令,并将链接作为参数传递。
Option Explicit
Public Const BROWSER_EXE = "C:\Program Files\Internet Explorer\iexplore.exe"
Public Sub LaunchWebpages()
Dim wsOptions As Worksheet
Dim rngOption As Range
Dim wsLinks As Worksheet
Dim rngCountry As Range
Dim lngCounter As Long, lngLinkCount As Long
Dim rngLink As Range
Dim strLink As String
'get input
Set wsOptions = ThisWorkbook.Worksheets("Sheet1")
Set rngOption = wsOptions.Range("D3")
'find key on other sheet
Set wsLinks = ThisWorkbook.Worksheets("Sheet2")
Set rngCountry = wsLinks.Columns("A:A").Find(What:=rngOption.Text)
'quit if no match
If rngCountry Is Nothing Then
MsgBox "No match found for " & rngOption.Text
Exit Sub
End If
'open links
lngLinkCount = rngCountry.End(xlToRight).Column
For lngCounter = 2 To lngLinkCount
Set rngLink = wsLinks.Cells(rngCountry.Row, lngCounter)
strLink = rngLink.Text
Shell BROWSER_EXE & " " & strLink, vbNormalNoFocus
Next lngCounter
End Sub
我已将iexplore.exe
命名为,因此此宏将使用Internet Explorer作为Web浏览器。您可能更愿意将其更改为Chrome或其他内容。