我编写了一个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