Tag: vba

加快数据透视表过滤VBA代码

我有一个透视表与枢轴字段,并包含许多项目。 我有VBA代码逻辑来决定是否可见的枢纽值。 问题是excel重新计算每个字段显示或隐藏的数据透视表,这使得它非常缓慢。 在所有的值被设置后,我想要重新计算一次。 我尝试使用Application.Calculation = xlCalculationManual,但它没有帮助。 我正在使用的vba代码是这样的 For i = 1 To oPivotField.PivotItems.Count If (oPivotField.PivotItems(i).Name = "TestCondition") Then oPivotField.PivotItems(i).Visible = True 'Recalulates pivot table Else oPivotField.PivotItems(i).Visible = False 'Recalulates pivot table End If Next 我要手动做到这一点,取消“显示所有”框,并重新检查我想看到的领域。 这导致Excel重新计算一次,只显示我想要可见的透视项目。 我想通过VBA代码做同样的事情。 我甚至尝试过使用 Application.ScreenUpdating = False Application.DisplayAlerts = False 但没有工作。

在VBA中,如何使用函数返回数组/或写入单元格?

使用这个非常简单的function: Function WriteArray() as Variant Dim array(0 To 2) array(0) = "A" array(1) = "B" array(2) = "C" WriteArray = array End Function 我期待在Excel电子表格中看到整个数组的结果,但事实并非如此:我只得到第一个string。 我知道有一种方法可以在电子表格中显示整个数组(通过使用公式+ F2 + CTRL + SHIFT + ENTERselect一系列单元格),但我更喜欢VBA来处理这一切。 我也尝试使用Application.Callervariables直接写入“调用者”范围,但代码中断。 非常感谢你的帮助! 编辑:这是我尝试使用的另一个代码: Function WriteArray() As Variant Dim arr(0 To 2) arr(0) = "A" arr(1) = "B" arr(2) = "C" WriteArray = arr […]

如何将表格从Excel复制到PowerPoint – VBA

我找不到任何方法来做到这一点。 我现在所拥有的就是把它作为一个图像复制出来: Dim XLApp As Excel.Application Dim PPSlide As Slide Set XLApp = GetObject(, "Excel.Application") XLApp.Range("A1:B17").Select XLApp.Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture PPSlide.Shapes.Paste.Select 这就像一个魅力,但它有可能得到它复制范围作为一个表而不是图片?

Excel继续加载我的电子表格时出现错误

当我加载我的电子表格时,我一直收到这个错误。 它使我修复它,剥离所有的validation器。 该文件被保存为xlsm。 “在Excel中发现不可读的内容你是否想恢复这个工作簿的内容?如果你信任这个工作簿的来源,点击是” 您必须单击是或否将不加载。 然后我得到这个错误。 “Excel能够通过删除或修复不可读的内容来打开该文件。”删除的function:从/xl/worksheets/sheet1.xml部分进行数据validation“ 我对此一无所知,这实在令人烦恼。 如果有人有任何build议,我将非常感激。 谢谢,詹姆斯

如何使用VBA通过HTTP_POST通过Excel发送文件?

这里提出的问题是: 如何使用VBA从Excel发送HTTP POST请求到服务器? 几乎正是我正在寻找,除了我试图发送一些文件到服务器。 我GOOGLE了进一步,发现如何使用VBA通过HTTP后上传一个zip文件? 这也不错,但相当令人沮丧 – 看起来像很多工作(不只是在这里做一个HTML表单…)。 选项#2在这里: http : //www.motobit.com/tips/detpg_post-binary-data-url/ (正如在SO上面提到的问题)似乎它会工作,但由于我工作在JS和CSS,我不知道如何创buildFormData(二进制文件发送到服务器)在这个例子中。 谁能帮帮我吗? 实质上,我希望通过HTTP_POST通过VBA从Excel内部发送3-6个文件到一个期望表单数据的PHP服务器上的PHP脚本。 处理这个HTML表单看起来像: <form action="upload_file.php" method="post" enctype="multipart/form-data"> <input name="userfile[]" type="file" /><br /> <input name="userfile[]" type="file" /><br /> <input name="userfile[]" type="file" /><br /> <input type="submit" /> </form> 谢谢大家。 编辑 – 2012年8月2日 我仍然试图解决这个问题。 我不知道VBA / 6,几乎只是基本的JS,所以我有点失落。 这是我迄今为止所做的: Sub HTTPInternetPutFile() ' create new object with […]

为什么vba不处理错误2042

我有一个与Excel的值完整行的variablesfila 问题是,当我有#N/A Excel中,VBA采取Error 2042值。 我不能把这个值赋值给一个错误。 直到这一点一切正常,现在我正在试图定义一个On Error Goto去For循环中的下一个迭代,但我不知道为什么VBA不处理这个错误。 Do While Not IsEmpty(ActiveCell) txt = ActiveCell.Value2 cell = ActiveCell.Offset(0, 1).Value2 fila = Range("C20:F20") For j = 1 To UBound(fila, 2) On Error GoTo Siguiente If Not IsEmpty(fila(1, j)) Then valor = fila(1, j) cmd = Cells(1, j + 2).Value2 devolver = function1(cmd, txt, cell, valor) arrayDevolver(p) […]

使用VBAmacros在Excel行中searchstring的精确匹配

如何在Excel中search某个特定行中的string? 我有一个长型variables的行索引。 Dim rowIndex As Long rowIndex = // some value being set here using some code. 现在我需要检查行中是否存在特定的值,whoose索引是rowIndex。 如果匹配,我需要获取第一个匹配单元格的列索引。 我曾尝试使用匹配function,但我不知道如何传递rowIndexvariables来代替单元格范围。 Dim colIndex As Long colIndex = Application.Match(colName, Range("B <my rowIndex here>: Z <my rowIndex here>"), 0)

在VBA中按键sorting字典

我已经在VBA中使用CreateObject("Scripting.Dictionary")创build了一个字典,它将源词映射到目标词,在某些文本中被replace(这实际上是用于混淆)。 不幸的是,当我根据下面的代码进行实际replace时,它将按照它们被添加到字典中的顺序来replace源语言。 如果我有例如“Blue”,然后是“Blue Berry”,则“Blue Berry”中的“Blue”部分被第一个目标取代,“Berry”保持原样。 'This is where I replace the values For Each curKey In dctRepl.keys() largeTxt = Replace(largeTxt, curKey, dctRepl(curKey)) Next 我想我可以解决这个问题,首先从最长的字典的键到最短的长度,然后按照上面的方式进行replace。 问题是我不知道如何用这种方法对键进行sorting。

使用VBAmacros从Excel工作簿中取消select所有checkbox

我有一个超过100个checkbox的工作簿。 他们是表格控制checkbox 我想一下子取消所有的select 这是他们设置为false。 Sub clearcheck() ActiveSheet.CheckBoxes.Value = False End Sub 这适用于活动工作表。 我想这个代码是整个工作簿 我已经尝试寻找代码,并搞清楚checkbox,但我都不明智。 如果有人能指导我,我将不胜感激 谢谢

Excelmacros – 导出到CSV文件并浏览保存目录

我已经成功地做了一个macros观的工作,做我所需要做的事情,但我想做得更好,而且不能。 – 这个位起作用 – 通过在excel中单击一个button,用户将一个特定工作表导出到一个带有dynamic文件名的csv,并将csv保存在一个预先确定的目录中。 – 它可以这样做 – 而不是它保存到预定的目录,我可以有浏览窗口显示,以便他们可以select一个目录,以保存到? 我无法弄清楚如何做到这一点。 这是我的macros: Sub Export() Dim MyPath As String Dim MyFileName As String MyPath = "C:\importtest" MyFileName = "MR_Update_" & Sheets("Monthly Review").Range("D3").Value & "_" & Format(Date, "ddmmyyyy") If Not Right(MyPath, 1) = "\" Then MyPath = MyPath & "\" If Not Right(MyFileName, 4) = ".csv" Then MyFileName […]