Excel iMac错误:";“无法运行ActiveX组件”;

Excel iMac错误:";“无法运行ActiveX组件”;,excel,vba,macos,Excel,Vba,Macos,我最近购买了一台iMac,并从Windows中移动了我的EXCEL工作簿。我将这个宏设置为从网站导入数据 它不再工作,返回错误 “无法运行ActiveX组件” 我在MacOSX版本的Excel上查找“导入数据->从网站”按钮,但找不到它。显然这是不可能的 Sub GetTeamLinks() Dim HTMLdoc As Object, PageSource As String, url As String, i&, Arr, j&, Tbl url = "http:/

我最近购买了一台iMac,并从Windows中移动了我的EXCEL工作簿。我将这个宏设置为从网站导入数据

它不再工作,返回错误

“无法运行ActiveX组件”

我在MacOSX版本的Excel上查找“导入数据->从网站”按钮,但找不到它。显然这是不可能的

Sub GetTeamLinks()
Dim HTMLdoc As Object, PageSource As String, url As String, i&, Arr, j&, Tbl
url = "http://mwatch.boursakuwait.com.kw/default.aspx/AllShares"

With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", url, True
    .send
    
    While .readyState <> 4: DoEvents: Wend 'Check for any connection errors.
    
    If .statusText <> "OK" Then
        MsgBox "ERROR" & .Status & " - " & .statusText, vbExclamation
        Exit Sub
    End If
    PageSource = .responseText
End With

Set HTMLdoc = CreateObject("htmlfile")
HTMLdoc.body.innerHTML = PageSource
HTMLdoc.Close

For Each Tbl In HTMLdoc.getElementsByTagName("table")
    If Tbl.className = "gridtablethin" Then
        
        ReDim Arr(1 To Tbl.Rows.Length, 1 To Tbl.Rows(0).Cells.Length)
        For j = 2 To 86
            For i = 2 To UBound(Arr, 1)
                If UCase(Sheets("Sheet1").Cells(j, "B")) = Tbl.Rows(i - 1).Cells(0).innerText Then _
                    Sheets("Sheet1").Cells(j, "F") = Tbl.Rows(i - 1).Cells(1).innerText
            Next
        Next
    End If
Next
End Sub
Sub-GetTeamLinks()
Dim HTMLdoc作为对象,PageSource作为字符串,url作为字符串,i&,Arr,j&,Tbl
url=”http://mwatch.boursakuwait.com.kw/default.aspx/AllShares"
使用CreateObject(“MSXML2.XMLHTTP”)
.打开“获取”,url,True
.发送
While.readyState 4:DoEvents:Wend'检查是否存在任何连接错误。
如果.statusText为“OK”,则
MsgBox“ERROR”和.Status&“-”和.statusText,vb感叹号
出口接头
如果结束
PageSource=.responseText
以
设置HTMLdoc=CreateObject(“htmlfile”)
HTMLdoc.body.innerHTML=PageSource
HTMLdoc.关闭
对于HTMLdoc.getElementsByTagName(“表”)中的每个Tbl
如果Tbl.className=“gridtablethin”,则
ReDim Arr(1到Tbl.Rows.Length,1到Tbl.Rows(0.Cells.Length)
对于j=2到86
对于i=2至UBound(Arr,1)
如果UCase(Sheets(“Sheet1”).Cells(j,“B”)=Tbl.Rows(i-1).Cells(0).innerText,则_
表格(“Sheet1”)。单元格(j,“F”)=待定行(i-1)。单元格(1)。内部文本
下一个
下一个
如果结束
下一个
端接头
尝试删除:

With CreateObject("MSXML2.XMLHTTP")
.Open "GET", url, True
.send
并将其替换为:

ActiveWorkbook.FollowHyperlink "http://mwatch.boursakuwait.com.kw/default.aspx/AllShares"

Mac OS明确禁止使用任何ActiveX控件作为安全措施。我认为这可能为您指明了正确的方向,即如何从Excel for Mac查询数据