无法将切片机连接到多个透视表-错误#424 "需要对象"
我正在尝试使用此处描述的方法将切片器连接到多个数据透视表:http://dailydoseofexcel.com/archives/2014/08/05/slicers-and-slicercaches/ 首先,我遍历我的数据透视表并为每个数据透视表创建一个切片器: wkbDash.SlicerCaches.Add(wksPivots.PivotTables(sPTName), sSlicerName). _ Slicers.Add wksSlicers, , sSlicerName, sSlicerName, 1, 1, 50, 100 然后我遍历我的切片器并尝试将它们连接到每个数据透视表 问题:我在此行收到错误 #424“需要对象": wkbDash.SlicerCaches(objSlicer).PivotTables.AddPivotTable (wksPivots.PivotTables(varPTNames(i, 1))) 将切片器连接到数据
1348 2022-08-11
编程技术问答社区
未找到OLEDB.oracle提供者
我在访问 Oracle 数据库的 Excel VBA 应用程序中遇到了一个奇怪的问题.该应用程序在开发和测试中运行良好,但是当它安装到 VM 上以供支持使用时,它说它找不到数据提供者或数据提供者可能没有正确安装. 通常,问题是没有安装 Oracle 客户端,缺少 OLE 数据库提供程序,但这已全部安装,没有任何阻塞.SQL Developer 可以访问数据库,所以我很困惑可能是什么问题. 正在使用的是 Oracle 12c 客户端,正如我所说 - 在开发和测试中一切正常. 有人可以帮我解释一下吗? 解决方案 问题出在 Excel 2010 上.一位同事安装了 64 位版本的 Office 2010,而不是标准版本.安装后,它起作用了.所以,安装 Office 2010 时要小心
278 2022-08-11
编程技术问答社区
Excel宏在两台电脑上的表现不同
我的 excel 文件有问题.去年我编写了一个宏来选择工作簿中所有以绿色作为标签颜色的工作表.直到昨天,每台计算机上的一切都运行良好.实际需要修改该文件的计算机开始采取不同的行动,只选择第一个工作表.我再次卸载并安装了excel,但它没有改变任何东西.我们在带有 Office 2013 家庭版和商业版的 Windows 7 Pro x64 上运行. 这是我的代码: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim selection As Boolean selection = False For Each ws In ActiveWorkbook.Worksheets If ws.Tab.Color = 5296274 Then If selection = False Then
364 2022-08-11
编程技术问答社区
Excel将数据从列表对象A(tableA)的几列中逐一复制到列表对象B(tableB)的一列中
我有一个包含几张工作表的工作簿,每张包括一个列表对象(一个表格) 我的目的是从不同的列表对象中获取数据并将其粘贴到另一个列表对象中.或者更准确地说,在另一个表中一个接一个地复制多个表的几列. 到目前为止,我正在尝试这个: 'defining the names of the list objects Dim OriginTable As ListObject Set OriginTable = ThisWorkbook.Sheets("claims").ListObjects(1) Dim destinationTable As ListObject Set destinationTable = ThisWorkbook.Sheets("COMM").ListObjects(1) 'inserting one row in case the table is empty. If destinationTabl.ListColumns(1).DataBodyRange I
234 2022-08-11
编程技术问答社区
Excel add-in's和VBA引用的范围是什么?
当我安装插件(通过复选框)时,控制插件安装多长时间的规则/机制是什么?似乎是安装在应用程序级别的,也就是说它适用于excel应用程序中的任何工作簿,直到您自己取消选中它.如果这是正确的,这意味着只要用户自己安装插件就可以了;但他们必须在第一次安装它(这可以通过编程方式完成). 关于 VBA 引用,我想这些不需要每次都“检查"——这意味着它在文档的范围内.但如果这是真的,为什么人们建议在软件准备好分发时使用后期绑定方法?后期绑定真的只是为了让它与不同的版本兼容,但不一定是为了让 DLL 被“检查"作为参考?在这样的假设下,只要大家都和我用的是同一个版本的Excel,那么放弃后期绑定,直接手动添加引用会不会安全? 解决方案 加载项安装到应用程序级别.如果需要,您可以使用 Ribbon XML 微调加载项如何向各种工作簿公开(或不公开). 只要用户自己安装插件就可以了;但他们必须第一次安装它 是的,他们必须安装它. 关于 VBA 引用,我想这些不需要每次都“检查
180 2022-08-09
编程技术问答社区
如何使用VBA访问存在于报告过滤器中的透视字段的透视项目
我使用以下代码打印每个数据透视字段中存在的数据透视项及其可见状态.我在报告过滤器中有 5 个数据透视字段. 问题是,它正在正确获取枢轴字段的数量.但是当涉及到枢轴项目的数量时,每个枢轴字段都返回 0.实际上,每个字段都有很多项目.我不想打印可见项目.但是项目及其可见状态. Dim pf As PivotField Dim pt As PivotTable Dim pi As PivotItem Set pt = Sheets("Reasons").PivotTables("PivotFields") For Each pf In pt.PageFields For Each pi In pf.PivotItems Debug.Print pi.Name & " : " & pi.Visible Next Next 解决方案 在下面的链接中查看我的代码,它可以让您在无法使用 Slicers 的情况下有效地同步数据透视表http://bl
120 2022-08-08
编程技术问答社区
当字段在水平和垂直轴上时,如何创建透视表
我正在使用需要在数据透视表中转换的表格 但是,我有一些数据透视表中的字段位于列中,而其他一些字段位于行中(日期).然后返回以下数据透视表: 有没有办法让数据透视表读取它?(我也开放 VBA Ideas 开始) 解决方案 您的数据当前在交叉表中“交叉表化",也就是 Pivots 无法处理的.您需要使用 PowerQuery 或 VBA “取消透视"您的数据. 如果您有 Excel 2013 或之后.Google PowerQuery Unpivot,你会发现数百个教程,例如我的好朋友 Chandoo 的教程https://chandoo.org/wp/2015/09/29/unpivot-data-with-power-query/ 使用 VBA.Google Unpivot VBA 并显示数百个结果,包括我一段时间前发布的这个极快的代码:http://dailydoseofexcel.com/archives/2013/11/21/unpivot-枪战/(在“
132 2022-08-08
编程技术问答社区
根据单元格中的值过滤透视表的VBA代码
我已经搜索并尝试了所有我能找到的关于如何通过引用单元格值的 VBA 代码过滤数据透视表的方法.该表只有一个过滤器,它被称为“名称",该表是我放在一起的记分卡的一部分,数据透视表本身被命名为“数据",工作表被命名为“报告",而我正在引用的单元格是A5.我能够在 VBA 中做一些简单的事情,并且已经在这里和那里使用了几年,但是这件事让我把头发拉了出来.有人可以用简单的话向我解释一下吗 解决方案 首先,有几个 VBA 的替代方案,以防你没有考虑过它们.如果这个想法是让用户在单元格中输入内容或从单元格下拉列表中进行选择,那么请记住,您也许可以添加一个切片器,然后让用户单击他们想要过滤的值那.或者,如果您希望用户从下拉列表中选择一个值,您可以使用第二个数据透视表“伪造"一个,其中只有“名称"字段作为 PageField,其外观和行为非常类似于数据验证下拉列表.然后,您可以使用切片器将该枢轴连接到主枢轴.请参阅我在 http://dailydoseofexcel.com/archives 的
328 2022-08-08
编程技术问答社区
枚举子群pivottable vba
我有一个看起来像这样的数据透视表结构(即数据透视表 UI 的“ROWS"框中有三个条目) 类别 子类别 子子类别 我知道我可以通过(在 VBA 中)分别执行 PT.PivotFields(3).PivotItems()、PT.PivotFields(2).PivotItems() 和 PT.PivotFields(1).PivotItems() 来获取所有类别、子类别和子子类别,其中 PT 是我的数据透视表. 如何找出每个类别中有哪些子类别,以及类别中的子子类别相同? 我尝试使用 PT.PivotFields(3).PivotItems()(1).ChildItems() 但我得到一个错误 和尝试 ParentItem 相同. 知道我该怎么做吗? 我正在寻找的一个例子.使用下面的数据透视表,并(以某种方式)列举: a
140 2022-08-08
编程技术问答社区
用VBA从多个Excel表的不同范围创建PDF
我需要将多张 Excel 工作表导出到一个 PDF 文件中.我目前正在使用以下内容: Sub CreatePDF() Sheets("ReportPage1").Select Range("Print_Area").Select Sheets("ReportPage2").Select Range("Print_Area").Select Sheets("ReportPage3").Select Range("Print_Area").Select ThisWorkbook.Sheets(Array("ReportPage1", "ReportPage2", "ReportPage3")).Select Selection.ExportAsFixedFormat _ Type:=xlTypePDF, _ FileName:="C:\temp\temp.pd
206 2022-08-05
编程技术问答社区
将正在打开的文件保存为pdf文件
我有以下代码,可以从 Excel 中复制范围单元格的值,并将其作为图片粘贴到新的 Word 文档中.我想将活动文档保存为 pdf 文件,文件名作为单元格“A2"中的值.如果您能帮我在下面的代码中添加相同的内容,那将是一个很大的帮助. Sub Picture() Dim objWord, objDoc As Object ActiveWindow.View = xlNormalView Range("A2:K25").Select Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture Set objWord = CreateObject("Word.Application") Set objDoc = objWord.Documents.Add objWord.Visible = True objWord.Selection.Paste objWord.Selection.TypeParagraph End Sub
160 2022-08-05
编程技术问答社区
使用excel-VBA操作Ms Paint
我编写了一个代码,将图表从工作表(在我的 excel 工作簿中)复制到 Ms-Paint,然后保存结果. Sub paintCharts() ThisWorkbook.Sheets("DesiredData").Activate With ActiveSheet.ChartObjects.ShapeRange.Group .CopyPicture .Ungroup End With Dim path_Paint As String Dim paintID As Variant path_Paint = "C:\Windows\System32\mspaint.exe" paintID = Shell(path_Paint, vbNormalFocus) Call AppActivate(paintID) Call SendKeys("^V") End Sub 我在 Call AppActivate(paintID) 进一步收到错误,我想问一下是否通过调用 Call
306 2022-08-04
编程技术问答社区
Outlook VBA代码导出部分正文到Excel不工作
我使用了来自 stackoverflow 和其他一些地方的各种资源来获取 VBA 中的一些代码.这是我尝试过的第三次迭代,但仍然没有让它工作.第一次迭代主要是从头开始编写的,但没有奏效.第二次迭代基于 this stackoverflow post.我在 ThisOutlookSession Outlook 对象中有代码在启动时运行.当前迭代基于 this stackoveflowpost 并且在它自己的模块中.它使用 Outlook 中的规则运行. 从电子邮件正文中获取数据的部分在之前的代码迭代中似乎运行良好.但是写入 Excel 的部分似乎不起作用,并且在以前的任何迭代中都没有起作用,我不知道为什么. 我在 Outlook 中设置了一个规则,可以在具有特定主题行的电子邮件上运行宏.这些电子邮件以特定方式构建,可以轻松获取数据.该规则还将这些电子邮件设置为阅读,它确实如此,因此我可以看到该规则有效. 我的文档中有一个 Excel 工作表,第一行专门用于标记列.虽然我也
92 2022-08-03
编程技术问答社区
解析Outlook邮件并导出至Excel VBA
我目前正在编写一个在 Microsoft Outlook 中运行的 VBA 宏脚本,它应该解析电子邮件中的关键信息并将它们存储到 Excel 电子表格中. 现在,我被困在解析和提取我想要的东西的逻辑上. 这是一封电子邮件的简短示例,其中包含需要提取并保存到 Excel 中的信息,以黄色圈出(X 是大写或小写字母,# 是数字) 这是 Excel 布局以及我当前的代码发生了什么,除了标题之外什么都没有弹出! 这是我当前的代码: Sub Extract() On Error Resume Next Dim messageArray(3) As String Set myOlApp = Outlook.Application Dim OlMail As Variant Set mynamespace = myOlApp.GetNamespace("mapi") 'Open the current folder, I want
128 2022-08-03
编程技术问答社区
使用VBA在Outlook正文中发送带有PNG图片的邮件
在互联网上进行了深入研究后,我能够构建以下代码: Sub EmailSuccess() Dim OutlookApplication As Outlook.Application Dim OutlookMailItem As Outlook.MailItem Dim Recipients As Object Dim myRecipients As Outlook.Recipient Dim sTo As Object Dim CCs As Object Dim myCCs As Outlook.Recipient Dim sCc As Object Dim emailContent As String Dim OutDocSto As String Dim ArchiveLinks As String Dim KendoxDocs As String Dim LinksGE A
178 2022-08-03
编程技术问答社区
MinimizeOutlookWindow不起作用
我分别调用了3个程序: Sub SendMail() OutlookSendMail strTo:="DesEMailAddress", _ strSubject:="BackUp DB", _ strBody:=ThisWorkbook.name & vbCr, _ strAttach:=sFile OpenOutlook MinimizeOutlookWindow End Sub 不幸的是,第三个(MinimizeOutlookWindow)似乎是按此顺序排列的!(不工作) 否则,如果我在打开 Outlook 窗口时绝对在另一个子程序中运行它,它会真正最小化窗口. 如何解决这个问题,因为 MinimizeOutlookWindow 程序在上面的 SendMail 子程序中最小化打开的 Outlook 窗口? 以下是上述三个子程序的主体: Sub OutlookSendMail(st
94 2022-08-03
编程技术问答社区
可用的OOP概念列表
我正在为 VBA 中的 OOP(面向对象编程)构建一些材料.谁能列出 VBA 中可用的 OOP 概念吗? 例如,从我的阅读中我发现: 继承在 VBA 中不可用. 封装概念就在那里,因为您可以使用访问修饰符“private"并构建公共属性. 解决方案 以下是我在 VBA 中使用 OOP 概念时的一些观察: 您不能在 VBA 中重载方法.但是,无论好坏,您的一次性用品中都有可选参数. 您有一个无参数的 Class_Initialize 方法,该方法在对象实例化时被调用,但它不能被重载以处理参数.如果你想在没有设置某些属性的情况下强制你的类不能“完全正常运行",你必须编写自己的方法来做到这一点. VB6 和 VBA 编辑环境强制您构建“类文件"并将每个类保存在与模块不同的单独文件中. 类和模块都可以有公共和私有字段.模块中的公共字段本质上是一个全局变量. 模块在功能上类似于 C# 中的静态类.可以从应用程序中任何位置的模块调用公共代码. VB6/VBA
100 2022-08-01
编程技术问答社区
调用异常条目记录的SQL查询
我是 Excel VBA 的新手.我有一个 UserForm,我试图在其中填充员工在当月输入的异常记录.我有一个名为 Ofc 的数据库.在其下我有一个表 Codeusage. 主键是Sno.这是 Codeusage 表中字段的名称,详细说明了结构和保存的记录. 目标:例如,如果我想查看 43243312 已在 10 月份更新的所有异常,那么它应该显示三个记录. Codeusage表的内容: Sno PeoplesoftId Date of exception Start of exception End of exception Exception time in minutes Code used Reason for code usage Authorized By 36 43243312 10/7/2015 12:10:00 AM 12:15:00 AM 05 Code 11 - Coaching fg
152 2022-07-29
编程技术问答社区