Excel 如何解决以下WIN-MacVBA兼容性问题?

Excel 如何解决以下WIN-MacVBA兼容性问题?,excel,vba,macos,Excel,Vba,Macos,下面的VBA代码在Win Excel上工作,但在Mac Excel上不工作。你知道如何解决这个问题吗?在Mac上打开excel文件时,会出现以下消息(法语翻译):“编译错误-找不到方法或数据成员”。而且不可能使用excel文件 第一行从“专用”突出显示到“范围”) Private子工作表\u selection更改(ByVal目标作为范围) 如果不相交([B4:B20],Target)为空且Target.Count=1,则 设置f=图纸(“BD”) a=应用程序.Transpose(f.Rang

下面的VBA代码在Win Excel上工作,但在Mac Excel上不工作。你知道如何解决这个问题吗?在Mac上打开excel文件时,会出现以下消息(法语翻译):“编译错误-找不到方法或数据成员”。而且不可能使用excel文件

第一行从“专用”突出显示到“范围”)

Private子工作表\u selection更改(ByVal目标作为范围)
如果不相交([B4:B20],Target)为空且Target.Count=1,则
设置f=图纸(“BD”)
a=应用程序.Transpose(f.Range(“A3:a”&f[A65000].End(xlUp).Row))
Me.ComboBox1.List=a
Me.ComboBox1.Height=目标高度+3
Me.ComboBox1.Width=Target.Width
Me.ComboBox1.Top=Target.Top
Me.ComboBox1.Left=Target.Left
Me.ComboBox1=目标
Me.ComboBox1.Visible=True
Me.ComboBox1.Activate
其他的
Me.ComboBox1.Visible=False
如果结束
端接头
专用子组合框1_Change()
如果Me.ComboBox1“”和IsError(Application.Match(Me.ComboBox1,a,0))则
Me.ComboBox1.List=过滤器(a,Me.ComboBox1.Text,True,vbTextCompare)
Me.ComboBox1.下拉列表
如果结束
ActiveCell.Value=Me.ComboBox1
端接头
私有子组合框1_DblClick(ByVal Cancel作为MSForms.ReturnBoolean)
Me.ComboBox1.List=a
Me.ComboBox1.Activate
Me.ComboBox1.下拉列表
端接头
私有子组合框1u KeyDown(ByVal键代码为MSForms.ReturnInteger,ByVal移位为Integer)
如果KeyCode=13,则ActiveCell.Offset(1)。选择
端接头
如果错误,请告知我,但我相信代码在工作表对象中:


谢谢你的帮助,

也许你应该在问题中解释一下这个问题?“它在mac上不工作”不是问题。在mac上打开excel文件时,会出现以下消息(翻译成法语):“编译错误-找不到方法或数据成员”。而且不可能使用excel文件。好吧,这不是“在你的问题中”-但现在要解释的是,当你出现错误时,哪一行突出显示-最好将所有这些添加到你的问题中。@braX感谢你的时间、耐心和回答。100%新手。也许你没有把它放在工作表对象中,而是放在模块中?它在模块中不起作用。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([B4:B20], Target) Is Nothing And Target.Count = 1 Then
    Set f = Sheets("BD")
    a = Application.Transpose(f.Range("A3:A" & f.[A65000].End(xlUp).Row))
    Me.ComboBox1.List = a
    Me.ComboBox1.Height = Target.Height + 3
    Me.ComboBox1.Width = Target.Width
    Me.ComboBox1.Top = Target.Top
    Me.ComboBox1.Left = Target.Left
    Me.ComboBox1 = Target
    Me.ComboBox1.Visible = True
    Me.ComboBox1.Activate
  Else
    Me.ComboBox1.Visible = False
  End If
End Sub

Private Sub ComboBox1_Change()
 If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
   Me.ComboBox1.List = Filter(a, Me.ComboBox1.Text, True, vbTextCompare)
   Me.ComboBox1.DropDown
 End If
   ActiveCell.Value = Me.ComboBox1
End Sub
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Me.ComboBox1.List = a
  Me.ComboBox1.Activate
  Me.ComboBox1.DropDown
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 13 Then ActiveCell.Offset(1).Select
End Sub