我正在使用Excel for Mac 2011,并且在一张表中有几个checkbox。 我试图用下面的代码自动化他们: Private Sub CheckBox12_Click() Dim ws As Worksheet Set ws = ActiveSheet With ws If .Shapes("CheckBox12").OLEFormat.Object.Value = xlOn Then .Range("CK1").EntireColumn.Hidden = False Else .Range("CK1").EntireColumn.Hidden = True End If End With End Sub 此代码给我错误:运行时错误445对象不支持此操作。 但是,如果删除ws,只是做 Private Sub CheckBox12_Click() With ActiveSheet If .Shapes("CheckBox12").OLEFormat.Object.Value = xlOn Then .Range("CK1").EntireColumn.Hidden = False Else .Range("CK1").EntireColumn.Hidden = True […]
我有一个特殊的问题,因为在Mac OSX 10.10 VBA/Excel 2011影响date格式的错误。 我发现我可以通过将Region设置(在SystemPreferences / Language & Region )更改为非GMT语言环境来解决该问题。 例如,如果我将地区从United Kingdom更改为Italy , 则不会发生该错误。 我一直在开发一个运行AppleScript的macros,然后运行一个shell脚本,使用默认实用程序更改设置。 我使用的shell脚本是这样的: defaults write NSGlobalDomain AppleLocale en_GB 打算在打开Excel时, AppleLocale的值被改变,错误消失,然后在结束时, AppleLocale的值被恢复到之前的状态。 打开Excel AppleLocale编程方式更改AppleLocale的设置可以正常工作。 但是,如果我然后重新启动应用程序,Excel只会select此更改。 但是,如果使用“系统首选项”GUI更改“区域”设置,则无需重新启动Excel即可识别更改。 我真的想要避免GUI脚本,所以我想知道是否有一些聪明的BOD在那里可能知道为什么这个脚本的变化不被识别。 我可以做其他事情来强制Excel识别系统更改吗?
我试图用VBA将单个表单(不是整个工作簿)导出为HTML。 当我录制一个macros导出到HTML单张,我得到这个代码: Range("C36").Select ActiveWorkbook.SaveAs filename:= _ "Macintosh HD:Users:user:Desktop:Dashboard.htm", FileFormat:=xlHtml, _ PublishOption:=xlSheet 而导出的HTML只包含我想要的表格,所以一切都很好,直到这一点。 当我尝试运行代码时,会出现问题,它会创build一个包含整个工作簿的HTML文件,而不仅仅是我想要的工作表。 我已经看过MSDN文档 ,并且SaveAs方法似乎没有PublishOption参数。 任何线索?
我试图获得一个包含macros的Excel 2011 32位(for Mac)电子表格。 问题是,这个macros在PC上正常工作,但不是在Mac上。 我试图导入蒂姆·霍尔的Dictionary.cls,但它仍然无法正常工作。 对于KeyValuePair.cls同样的事情。 错误:运行时错误“429”ActiveX组件无法创build对象 我不是程序员,所以问题可能是我,不知道要改变什么才能使事情正常工作。 那些知道自己在做什么的人可能是非常容易的。 任何人都可以花几分钟时间查看这些文件,并告诉我需要更改哪些部分才能运行? [我认为它确实有效…] FWIW,我试图用“New.Dictionary”replace“Scripting.Dictionary”在两个地方(见下文),但是没有得到它的工作。 Set dAttributes = CreateObject("New.Dictionary") Set dValues = CreateObject("New.Dictionary”) RandomiseData文件: Option Explicit Sub GenerateResults() Dim LO As ListObject Dim LO2 As ListObject Dim LR As ListRow Dim ws As Worksheet Dim cCount As Integer Dim gCount As Integer Dim dAttributes As Object Dim […]
我想获得一个在Excel 2011 for Mac中完美工作的macros,可以在Excel 2016 for mac中使用。 目标是让用户在其中指定一个.csv文件的文件夹,然后macros循环遍历所有的.csvs文件,打开每个文件,将信息从其中复制到另一个工作簿中。 试图打开用户select的文件夹中的第一个.csv文件时,macros失败,出现1004错误,无法find文件。 (注意:早些时候在macros中,workbooks.open与用户select的FILE完美协作) 这个macros是巨大的,所以我做了一个全新的小的来解决这个问题。 这里是更小的testing代码,它具有相同的失败行为: Sub Test() Dim folderpath As Variant Dim filename As Variant Dim newfilename As Variant Dim wb As Workbook Dim newfolderpath As Variant folderpath = MacScript("choose folder as string") newfolderpath = Replace(folderpath, ":", "\") MsgBox (newfolderpath) filename = MacScript("Choose file as string") newfilename = […]
我正在使用本文中描述的代码尝试捕获粘贴事件,并强制它们粘贴特殊以保留我的validation。 作为代码的一部分,有一个类模块: '————————————————————————- ' Module : clsCommandBarCatch ' Company : JKP Application Development Services (c) ' Author : Jan Karel Pieterse ' Created : 4-10-2007 ' Purpose : This class catches clicks on Excel's commandbars to be able to prevent pasting. '————————————————————————- Option Explicit Public WithEvents oComBarCtl As Office.CommandBarButton '<- Error highlights this line Private […]
我试图在macros中识别重复的单元格。 我试图使用macros,所以我可以提取整个行一旦确定重复。 我用这个代码: Sub MarkDuplicates() Dim iWarnColor As Integer Dim rng As Range Dim rngCell As Variant Set rng = Sheets("AllAccounts (12-05-2017)").Range("D1:D1613") iWarnColor = xlThemeColorAccentz For Each rngCell In rng.Cells vVal = rngCell.Text If (WorksheetFunction.CountIf(rng, vVal) = 1) Then rngCell.Interior.Pattern = xlNone Else rngCell.Interior.ColorIndex = iWarnColor End If Next rngCell End Sub 但它只识别空单元格。 此刻,我只是想识别重复的文本,稍后我会提取它们。 你能帮我做吗?
我很想写一个脚本在vba中导入几个文本文件到excel(一张),然后在一张图上绘制它们。 我在刷新BackgroundQuery命令中遇到问题,并在1004运行时错误。 我如何解决? 谢谢,Eyal 这是我的代码: Sub fring1() Dim fpath As String Dim fname As String Dim i As Integer fpath = "C:\Users\epinkas\Desktop\Yossi\" fname = fpath & "*.txt" Name = Dir(fname) While Name <> "" With Sheet1.QueryTables.Add(Connection:= _ "TEXT;fpath & Name", _ Destination:=Range("$A$1")) .Name = fpath & Name .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = […]
我无法在Macintosh上运行Excel,但是由于Excel VBA编译器常量VBA7是在Excel(for Windows)2010中引入的,因此我认为它也适用于Mac Excel 2011。 但是,在Mac Excel 2011上运行时,显然这些代码会编译“Else”部分(适用于Excel 2007): #If VBA7 Then 'Set constants here for Excel 2010 or later: #Else 'Set constants here for Excel 2007 or earlier: #End If 所以为了让Mac Excel 2011用户能够使用它,我必须将其更改为: #If VBA7 Or Mac Then 'Set constants here for Excel for Windows 2010 or later, or Excel for Mac: #Else 'Set […]
这个代码片段在Windows上的Excel中运行得非常好。 但在OSX上,它提供了一个错误的Named argument not found (Error 448). With Sheets("Colors") Set rangeFound = .Cells.find(What:=Resource, After:=.Cells(1, 1), LookIn:=xlValues, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) End With