Tag: vba

在Sharepoint站点中发布Excel工作簿

我有一个Excel工作簿,我需要使用Excel VBA将其发布到SharePoint网站中。 所以我使用下面的代码在模块中创build了一个方法: Private sc_Lists As SoapClient30 Public c_WSDL_URL As String Private Const c_SERVICE As String = "Lists" Private Const c_PORT As String = "ListsSoap" Private Const c_SERVICE_NAMESPACE As String = "http://schemas.microsoft.com/sharepoint/soap/" Private Sub Class_Initialize() Dim str_WSML As String str_WSML = "" Set sc_Lists = New SoapClient30 c_WSDL_URL = glb_URL sc_Lists.MSSoapInit2 c_WSDL_URL, str_WSML, c_SERVICE, c_PORT, […]

Excel VBA脚本清除列中的所有checkbox

我试图清除特定范围的单元格中的所有活动的Xcheckbox,或按列 这看起来很简单,因为我可以用下面的代码完成整个工作表。 我只是不知道如何修改这只适用于单列或单元格的范围。 Sub ClearAllCheckboxes() Dim Answer As String Dim MyNote As String Dim Obj As Object MyNote = "This will Clear all CheckBoxes Proceed? " Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "???") If Answer = vbNo Then Exit Sub Else On Error Resume Next For Each Obj In ActiveSheet.OLEObjects Obj.Object.Value = False Next Obj […]

当值为空时,访问自定义属性的值会导致“内存不足”错误

我试图在Excel表格中创build一个自定义属性,然后检索它的值。 这是好的,当我不使用空string,即"" 。 当我使用空string,我得到这个错误: Run-time error '7': Out of memory 以下是我正在使用的代码: Sub proptest() Dim cprop As CustomProperty Dim sht As Worksheet Set sht = ThisWorkbook.Sheets("control") sht.CustomProperties.Add "path", "" For Each cprop In ThisWorkbook.Sheets("control").CustomProperties If cprop.Name = "path" Then Debug.Print cprop.Value End If Next End Sub 代码在Debug.Print cprop.value失败。 我不应该能够最初设置财产?

Excel VBA函数仅在更改时更新

我有一个函数,我已经实现了一个VBA模块,它将一个单元格作为参数,并查询Web服务返回结果。 由于数据源是远程的,这个函数可能需要几秒钟才能返回。 问题在于某些操作(如删除任何列)似乎会导致每个公式重新计算,即使不需要更改。 当我的工作表有几百行时,这可能需要几分钟的时间,在这段时间内Excel没有响应。 我想find一些方法来检测,不需要改变,跳过这一步。 有些事情我已经尝试过了: 确定要更改的单元格的当前值,从中可以确定是否需要更新。 但ActiveCell.Value是空白的,并尝试传递单元格本身作为第二个参数会遇到循环引用警告。 创build第二列以保存旧的input值,然后将其传递给函数并与新值进行比较。 但是,函数无法在成功时更新此旧值,并且尝试仅使用公式进行更新总是会遇到循环引用警告。 而且,函数似乎没有返回“不变”,所以我需要存储和使用旧的结果。 有什么方法可以防止某些操作更新表单中的每个公式? 其他需求: 可能有一种方法来禁用所有公式自动计算,但我一定要每一行更新一旦参数单元格input。 我也不想强迫用户按下button来更新function。 我试图在Visual Studio中做一个自定义的电子表格,但发现部署太难以维护我的用户群。 解决scheme必须完全包含在启用macros的工作簿中。 使用该表格的Excel版本将是2007年和2010年。

Excel内置或VBAfunction来格式化文本的一部分(如颜色)

我需要格式化第一行多行文本单元格的颜色(或粗体文本…)。 所以我得到了 = myfunction(firstLine,secondLine),然后产生(在一个单元格内) firstLine (vbLf) secondLine 但我需要它来生产 **firstLine** (vbLf) secondLine (第一行是粗体)所以只是一个string的一部分,但在VBA函数中。 我可以在Sub里面做类似的事情 lngPos = InStr(myCell.Value, vbLf) With myCell.Characters(Start:=1, Length:=lngPos – 1).Font .FontStyle = "Bold" End With 但我不能find一个方法如何做到这一点,如果它甚至是可能的。

停止Excel切换到“对象”视图

我正在debugging这个VBA脚本,每当我点击RESET(小蓝色方块)时,它就会把我从“代码视图”中解放出来,然后放回到“对象视图”中。 真令人气愤 有没有办法阻止这种行为? 截图: 对象视图: 代码视图:

检查是否应用条件格式

使用Excel VBA代码有什么办法可以检查一个特定的单元格是否满足条件格式化? 我有一个单一的数据列80000单元格。 我使用下面的代码,但是它给与Interior.ColorIndex或Interior.PatternIndex或Font.Bold相同的值,无论是否应用Coditional格式 Sub Check_CF() MsgBox Range("B4").Interior.PatternColorIndex End Sub 我的条件格式规则并不重要。 如果我能够检查是否适用,我可以更改规则。 请帮忙。 提前致谢。

将string转换为Exceldate和时间,具有特定的string格式

我有一个Excel / VBAmacros,列出目录中的文件。 文件名格式为:yyyy-MM-dd @ hh-mm-ss_ [description] .csv 例如: 2013-07-03@22-43-19_my-file.csv 然后我需要获取文件名的第一部分到一个Exceldate对象(包括时间戳) 我发现了CDate()函数,但它没有带任何“格式”参数,并且Format()函数的工作方式是错误的,即将string转换为date。 我想通过获取一个string和格式的函数,并返回一个Exceldate/时间对象。 有没有一个function来做到这一点? 谢谢,

如何从graphics数据中删除所有可以线性插入的点?

如果在Excel中给出了两列graphics数据,那么它如何能够“不插入” – 即压缩到产生相同线图的最less行数? 一个简单的例子: xy 1 4 2 5 3 6 4 3 5 0 会成为: xy 1 4 3 6 5 0 …因为这将产生完全相同的线条,但“中间”点被删除。 是否有一个现有的macros,加载项,在线工具等可以用来产生这样的结果 – 如果不是,也许有人可以发明这样的algorithm? 编辑:对于一个现实世界的例子,下面的图是使用WebPlotDigitizer反向工程。 粉红色的点标记的点,可能不完全转换为浮点值 – 如此理想的algorithm将包括一个小的“误差余量”来解释这一点。

VBA编译错误

我对VBA的使用经验很less,而且最近一次使用VBA是几年前的事。 下面是我的VBA: Function MacIDGen(total, current) If total – current = 0 Then current -1 Else current 1 End If Macro1 (current) End Function Sub Macro1(cur) Sheets("Donations").Cells(I2).Value = cur & "Test" End Sub 这是它自己的模块,根本没有其他的代码。 所以我有一个叫MacIDGen()的单元格。 它传递MacID两个单元格值。 每当执行“错误:预期子,函数或属性”时都会出现错误,并强调函数方法签名。 我不知道为什么它在这里踢它,我猜是因为我错过了一个重要的步骤,或者如何在这种情况下不能有一个function或其他这样的问题。 编辑作为一个额外的信息,我在Excel中创build这些电子表格,作为随机数据生成表导入到Drupal站点。 我遇到了一个问题,如果不使用循环就无法解决(我也不能硬编码迭代的次数),哪个公式是不行的。