修改适用于Mac Excel兼容性的VBA复选框脚本

时间:2016-04-11 01:12:17

标签: excel macos vba excel-vba checkbox

我写了一个vba脚本,一旦用户点击某列的复选框,该列的数据就会填充在另一个隐藏的电子表格中。当用户取消选中该框时,数据将从隐藏电子表格的相对列中删除。我的脚本适用于MS Excel 2010,2013,但不适用于Mac Excel,并且将使用此文件的大多数用户都在Mac Excel上。我该怎么做才能使它与Mac Excel 2011兼容? (脚本在下面。)

Private Sub columnD_Select()
'If Column D is selected...
If ActiveSheet.Shapes("Check Box 80").ControlFormat.Value = 1 Then
    Sheets("Data To Display").Range("M2:M10000").ClearContents
    Sheets("SF Data 9 Box").Range("D6:D10000").Copy
Destination:=Sheets("Data To Display").Range("M2")
Else
    Sheets("Data To Display").Range("M2:M10000").ClearContents
End If
End Sub

-Kamili

(对MAT' S MUG的反应 - 它们是表单控件,而不是活动的x控件。当我在我的Windows机器上单击它们时,数据会填充在各自的列中,当我取消选中这些框时,列内容为但是,在我的macbook pro上,复选框表单控件没有填充。我的所有其他vba代码执行正常,它只是复选框,它无法识别点击操作。)

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,可以在Mac Excel 2011和MS Word上使用它。我将复选框链接到隐藏工作表上的单元格,然后将宏直接分配给每个复选框,而不是引用复选框ID,并进行了一些小的清理。

 Private Sub columnD_Select()
 'If Column D is selected...
 If Sheets("Checkboxes").Range("D4").Value = True Then
  Sheets("SF Data 9 Box").Range("D6:D10000").Copy Destination:=Sheets("Data To Display").Range("M2:M9996")
  Sheets("Data To Display".Range("K2:K10000").Calculate
 Else
  Sheets("Data To Display").Range("M2:M10000").ClearContents
 End If
End Sub

感谢那些试图帮助的人。 -Kamili