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



我编写了一个vba脚本,用于一旦用户单击列的复选框,该列的数据就会填充到另一个隐藏的电子表格中。当用户取消选中该框时,数据将从隐藏的电子表格上的相对列中删除。我的脚本适用于MS Excel 20102013,但不适用于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 MUG的回应-它们是表单控件,而不是活动的x控件。当我在windows机器上点击它们时,数据会填充到它们各自的列中,当我取消点击框时,列内容会被清除。然而,在我的macbook pro上,复选框表单控件不会填充。我所有其他的vba代码都执行得很好,只是复选框没有识别出该做什么-单击。)

我找到了一种方法,让它在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

最新更新