Tag: 自动化

Excel自动化 – 重置模板工作簿的全名

我用excel生成自动报告作为后端,我从一个预先模糊的模板开始,在这个模板中,我只提供缺less的部分: excelApp = actxserver('Excel.Application'); excelWB = excelApp.Workbooks.Open('Mytemplate.xslx'); excelWB.Saved = false; … Feed template with effective data … 我想要的是能够重置打开的模板工作簿的全名,以便当用户点击closuresbutton时,他将像往常一样提示Save , SaveAs为,但单击Save应该要求一个文件的位置,而不是覆盖已有的模板。 可能吗 ? (我尝试手动重置工作簿对象的Path和FullName属性,但这些是只读的,所以它不起作用)。

在使用PowerShell时停止数字转换为Excel中的文本

我正在使用powershell从CSV复制数据到Excel工作表(在现有的电子表格)。 在另一个工作表中有一个数据透视表,它引用了我从CSV复制的数据。 唯一的问题是,CSV文件中的数值正在被转换为Excel中的文本,该文本将计算的字段丢在数据透视表中。 电子表格中的字段被定义为数字(我已经确认了这一点) CSV文件中的值正在从SQL查询中导出,并用引号引起来。 我把它加载到Excel表格之前删除了引号,它没有任何区别。 作为一次性任务开始的结果是多次使用,我想自动化这个。 这里的任何build议将是非常有益的 这里的stream量是 Powershell脚本启动一个SQL脚本,并将输出复制到一个CSV文件,其中包含数字数据的4列 将CSV文件中的数据复制到包含2个工作表的现有电子表格中的工作表中 第二个工作表包含引用第一个工作表中的数据的数据透视表。

Excel VBA浏览器自动化:网站search框没有元素ID

我正在尝试使用Excel VBA进行浏览器自动化,但该网站( http://www.soccerstats.com/ )search框没有元素标识,所以通常的技术将无法使用。 这是我的计划代码: 'dimension (declare or set aside memory for) our variables Dim objIE As InternetExplorer 'special object variable representing the IE browser Dim aEle As HTMLLinkElement 'special object variable for an <a> (link) element Dim y As Integer 'integer variable we'll use as a counter Dim result As String 'string variable that […]

根据两列将工作簿拆分为多个工作簿

我希望大家都很好。 我正在寻找一些帮助。 我正在寻找一种工作手册,将主文件中的数据分割成基于列H的各个工作簿。首先需要做的是,需要将列T过滤为“拥有”或“受影响”。 然后H列需要分解成单独的工作簿。 基于列H中的内容。在创build的每个新工作簿上,无论是在H列下面,都需要有两个选项卡,一个是“拥有”选项卡,另一个是“受影响”选项卡。 这将需要然后保存,因为无论单元格的名称和date。 额外的困难位是在列H下,在每个单元格中可以有A,B,C,D,E,F作为单独的单元格,但也可能有多个字母的单元格。 如果他们有多个字母,每个人都需要进入单元格中提到的所有工作簿。 因此,例如,如果有一个单元格A,B,C,D,这意味着它将不得不进入A,B,C和D的单个工作簿的工作簿。 我附上了文件图像 我有我使用的下面的代码。 它确实有效,但是由于上述问题,单元格中的多个标准将工作簿分解为单独的工作簿。 有谁知道是否可以添加一个下拉列表,我可以从列H和T中select标准,或另一个工作周围请。 如果有必要,我很乐意尝试其他代码。 还附有示例工作簿。 Option Explicit Sub ParseItems() 'Based on selected column, data is filtered to individual workbooks 'workbooks are named for the value plus today's date Dim LR As Long, Itm As Long, MyCount As Long, vCol As Long Dim ws As Worksheet, […]

VBA将列读入数组,并基于两列的IF条件和值

正如@sktneer在我以前的查询中正确地build议在处理大数据时将数据读入数组。 我想通过范围A的数组读取到最后,如果A1中的值等于“L”,则将B1 + C1 我将这个公式转换为下面的代码=IF(A1="Male",C1+D1,FALSE) Sub ANewMacro() Dim lr As Long, i As Long, j As Long Dim c, d, x, y() lr = Cells(Rows.Count, 1).End(xlUp).Row x = Range("A1:A" & lr).Value c = Range("C1:C" & lr).Value d = Range("D1:D" & lr).Value ReDim y(1 To UBound(x, 1), 1 To 1) j = 1 For i = […]

需要每周扩展Excel表的VBA脚本

问题如下:我在Excel中有几个表格,给定数量的原始数据和dynamic列数(每个星期应添加一个新列,目前我正在手动)。 我想自动化它,并创build一个脚本,将每个原始范围扩展到下一列(即范围从A2到C2应该从A2到D2),等等(这样,运行脚本N次将导致扩展表进一步N列)。 通过“扩展”我的意思是扩展公式,因为我的表中的每个单元格包含任何公式。 有没有办法通过VBA做到这一点? 我不能只logging相应的macros,因为我现在已经知道如何指定我不想将它与任何特定的范围链接,而是总是只扩展到一列。 任何帮助和例子将非常感激。

获得Excel VBA的错误,但代码仍然工作?

自从我使用VBA以来,已经有很长一段时间了,甚至是出类拔萃,但是由于我的工作原因以及繁琐的excel编辑,我决定自动填充。 我有一张电子表格,里面有一张计算员工工资的表格(审查员工姓名和大部分表格出于显而易见的原因): 该表基于积分系统,未来的老板将根据员工当天的工作情况,在每一列中填入1至3的点数(缺席栏除外)。 然后,电子表格将“总计”列中的总分数汇总到右侧。 然后根据这些要点将员工从A +分级到C级。 这是我的一部分。 我想做的是写一个简单的vba代码来自动做到这一点(有更多的员工比你在这张照片上看到的,所以不要叫我懒惰!)。 所以这里是开始的: Private Sub Worksheet_Change(ByVal Target As Range) If ActiveSheet.Range("P7").Value >= 10 Then 'Total points value ActiveSheet.Range("Q7").Value = "A+" 'change value of the grade ElseIf ActiveSheet.Range("P7").Value >= 8 Then ActiveSheet.Range("Q7").Value = "A" ElseIf ActiveSheet.Range("P7").Value >= 6 Then ActiveSheet.Range("Q7").Value = "B+" ElseIf ActiveSheet.Range("P7").Value >= 4 Then ActiveSheet.Range("Q7").Value = "B-" […]

如何使用自动化在C ++中迭代Excel列的集合?

我想做下面的VBA代码的道德等价物: For Each col In Worksheets("Sheet1").Columns # do stuff Next col 我已经为Exceltypes库生成了MFC包装,这让我到目前为止(生成的types都从COleDispatchDriver派生: CApplication app; app.CreateDispatch( clsid, e ); CWorkbooks wbks( app.get_Workbooks() ); CWorkbook book( wbks.Open( filename, /* optional args */ ) ); CRange cols( app.get_Columns() ); long numCols = cols.get_Count(); 从那里我卡住了。 它看起来像我可以使用Range::get_Item( rowid, colid )迭代单元格,然后从单元格中获取列,但我正在寻找上述循环的更直接的翻译。 (编辑)澄清:我实际上并不关心单个细胞。 我的目标是确定哪些列的宽度为0(被隐藏),并从工作表中删除它们。

Cultureinfo不匹配导致Excel自动化失败

我使用互操作来打开C#中的Excel文件。 目前我遇到的问题是,如果我安装的Excel是英文的,为了开始工作,我必须设置LocalSettings为英文。 这两个不匹配会失败。 我发现这是一个已知的问题http://support.microsoft.com/kb/320369 。 但是,我不能总是将线程cultureinfo设置为英文,因为我无法控制用户安装的Excel版本。 看起来唯一的解决方法是找出安装的Excel的语言设置,并确保两个当前线程cultureinfo是相同的。 但是,我无法从安装的Excel中获得正确的语言设置。 你的帮助表示赞赏。

使用Win32 :: OLE Perl模块将Excel中的一系列单元格保存为HTML

我想使用Perl脚本将一系列单元格作为HTML文件保存在XLS工作表中。 我已经search了解决这个问题的方法。 但是还没有find。 但是有一个类似于这个使用Excel VBA的解决scheme: With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _ "C:\Documents and Settings\Tim\Desktop\Page.htm", _ Selection.Parent.Name, _ Selection.Address(), _ xlHtmlStatic, "divExcelExport", _ "TestTitle") .Publish (True) .AutoRepublish = False End With 所以,我试图将其转换为Perl代码,但它给了我以下错误: H:\ test_code \ data> perl a.pl Win32 :: OLE(0.1702)METHOD / PROPERTYGET中的错误0x800a03ec“添加”H:\ test_code \ data> use strict; use warnings "all"; use Win32::OLE; my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application','Quit'); […]