Tag: 自动化

为什么我从Word文档调用macros而不是从Excel中调用macros时出现错误1004?

在Word文件中,我有一个打开Excel文件并调用该文件中的macros的macros。 (我正在使用VBA。)这是Word的简单代码: Set oExcelApp = CreateObject("Excel.Application") Set oWorkbook = oExcelApp.workbooks.Open("C:\Documents and Settings\Eddy\Mina dokument\Insajt\Arbeten\Prido\Affärssystem\www\modules\mod_order\eco.xls") oExcelApp.Visible = True oExcelApp.Run "'ECO.xls'!Ritning" Excel文件打开,macros运行,但是我得到一个错误提示(从瑞典语翻译): 无法为类PageSetupinput运行时错误“1004”PrintArea属性 如果我selectdebugging模式,则此行将突出显示: .PrintArea = "$A$1:$O$49;$Q$1:$AE$49;$Q$50:$AE$97;$AG$50:$AU$97" 整段代码是这样的: If Sheets("Beräkningar").Cells(6, 2) = "4V" Then With Sheets("Ritn").PageSetup .PrintArea = "$A$1:$O$49;$Q$1:$AE$49;$Q$50:$AE$97;$AG$50:$AU$97" .Zoom = 85 End With Sheets("Ritn").PrintOut End If 现在到了真正奇怪的事情。 如果我放弃在Excel文件中的macros的调用,只是手动调用同一个macros,它就像一个魅力。 同样,如果我手动打开Excel文件并启动macros,那么一切正常。

我如何将matlab答案导出到excel?

我在Matlab中做了简单的计算器GUI。 如何导出每个答案在MATLAB中的excel? 请帮助我..我已经使用xlswrite,但它只会取代Excel中的答案..你能帮我一个代码,导出每个答案,以不断增加答案 代码示例: a = get(handles.input1_gamma,'String'); %gamma b = get(handles.input2_h,'String'); %hc = get(handles.input3_q,'String'); %qd = get(handles.input4_power,'String'); %POWER % a and b are variables of Strings type, and need to be converted % to variables of Number type before they can be added together out = [str2num(a) * str2num(b)* str2num(c)]; e = {'Power','gamma','H','Q'; out,str2num(a),str2num(b),str2num(c)}; xlswrite('results.xls', […]

在Excel中通过VBA调用COM加载项

我有一个用VSTO写的COM加载项,我想用VBAmacros调用。 使用加载项我需要启动它,input一些文本(自动),然后运行应用程序。 加载项都是button,我不能轻易访问代码,因为它的一些被encryption(这是第三方)。 令人遗憾的是,logging函数在单击此加载项时不会执行任何操作,而且我也无法将其添加到VBA的引用列表中。 我已经尝试了几种方法来做到这一点,迄今为止还没有任何工作。 感谢您的帮助! -缺口 这是我的代码。 正如所写的,它在第二行到最后一行代码上引发了运行时错误91代码。 如果我在最后一行列表中添加括号,则会出现语法错误(预期:=)。 我不确定这个问题是什么 Sub Test() Dim addIn As COMAddIn Dim automationObject As Object Dim SQL_CODE As String Dim PW As String Dim Name As String Set addIn = Application.COMAddIns("Orion2010") SQL_CODE = "SELECT startdatetime, tli, serialnumber, keyname FROM vmfgoperationdata WHERE serialnumber in ( '90102072B030H' , '90102072003BF') and operationname […]

自动化Excel工作 – 将文件平面化到Excel电子表格中

我有一个主Excel电子表格,我每天更新10个平面文件10个不同的标签。 所以,每天早上,我打开我的Excel电子表格,删除昨天的标签,并把最新的TXT文件。 Txt文件遵循相同的模式,如下所示: 今天我有“FILE_1_45”,“FILE_2_45”,“FILE_3_45”….“FILE_10_45”。 明天我会有“FILE_1_46”,“FILE_2_46”,“FILE_3_46”….“FILE_10_46”,所以这些是增量式的。 我怎样才能使这个过程自动化? 我可以只input与我的date相对应的#,并为Excel创build一个button来创build这些?

在C ++中将值设置为Excel单元格抛出exception0x800A03EC

我正在写一个Excel地址。 插件中的UDF之一是通过在C ++中使用Excel自动化来为所选单元格设置值。 在我的代码中,我没有问题来获取范围,从选定的单元格中读取值,但是当我尝试将值设置为单元格时,如果值是一个string,代码将抛出exception(0x80020005types不匹配),否则,例外与HResult 0x800A03EC。 以下是一段代码片段: 有任何想法吗? void SetValue() { Excel::SheetsPtr pSheets = GetExcelApplicationObj()->GetWorksheets(); Excel::_WorksheetPtr pSheet = GetExcelApplicationObj()->GetActiveSheet(); _variant_t text = pSheet->Range["A2"]->Text; //Read value from selected cell works fine pSheet->Range["C2"]->Value = "Hello"; // throw 0x80020005 Type mismatch pSheet->Range["B2"]->Value = 5.0; //Set value throw Exception with HRESULT 0x800A03EC } Excel::_Application* GetExcelApplicationObj() { if (m_pApp == NULL) […]

使用VBA自动化IE浏览器 – 点击Javascript链接(无锚标签)

我们公司使用基于浏览器的程序进行商业运营。 我的目标是自动从这个系统中获取一些数据。 该网站本身使用相当重的框架,但我正在做相当体面的处理。 现在我面前的问题是导航到我的数据所在的屏幕上。 链接本身是在javascript中编码的,我没有看到锚标签(图像是一个+/-,或间距不可见) : 源代码 <div id='Nav_4' aTag='aTarget' title='Target' aUrl="javascript:top.aaa.submitPage('NavigateTo','~/aPages/aPage.aspx?UC=a')"> <img alt='' style="margin-left:0px; width:0px "/> <img src='/a/a.axd?d=a' alt='(Collapsed)' aAltX='(Expanded)' imgType='exp' /> <img alt=''style='width:5px; visibility:hidden;'> <span atxt='1' class=" breadcrumbTreeItem"> Target </span></div> 由于我无法得到一个标签,或search文档的链接,我试图find包含“目标”的span标签,并尝试激活它。 这是工作代码! (i5是一个迭代器) Set ie = GetOpenIEByURL("https://aaa.com/AAA.htm") fIter = 0 For Each frmSet In ie.document.getElementsByTagName("Frame") If Left(frmSet.src, 7) = "aaa/AAA" Then myFrame = […]

如何创build一个可以查找,select和剪切列的macros,并将它们粘贴到另一个工作表中?

还有一天,另一个问题。 我觉得做这件事很容易,但我现在不知道该怎么走。 问题: 在工作中,我们从客户那里获得优秀表格。 在这张表中,他们把详细信息,组织在每一列,例如第一列包含客户编号,第二列包含名称,thirth列地址等。 第一行包含列的描述,如:“客户编号”,“名称”,“地址”等。 问题是,并不是每个客户都以正确的顺序或相同的描述向我们发送这些信息,例如有些人用客户号码,号码或瞳孔号码来呼叫此列。 而且,这些列并不总是以相同的顺序。 有时他们把地址放在第一列,有时他们把名字放在第一列。 我们必须按照正确的顺序在我们自己的excel表格中手工剪切和粘贴每一列,以便我们的软件可以读取所有内容并将其放入数据库(不是不是mysql,否则我已经为mysql创build了一个脚本)。 问题: 如何检测每列中的内容,并自动在Excel工作表的右栏中剪切并粘贴该列。 例如,检测到thirth列是关于Customernumbers,并将其粘贴到我们工作表的Customernumber列中。 思路: 1.)我在考虑用php en mysql做一个解决scheme,如果excel工作表是以xml格式上传的,那么一个php脚本就可以运行并读取这个xml文件,这样它最终可以存储在一个mysql数据库中。 之后,我们可以创build一个xml文件,将数据库中的信息写入一个xml文件,列的顺序是正确的。 2.)经过长时间的思考和testing,我意识到这将花费很多时间,并且为了这么容易的事情而复杂化。 相反,我试图在VBA中做一些事情。 我发现有用的脚本,并了解到,VBA可以做我想要的东西。 唯一的事情是,networking是要find我真正想要的东西,我只知道VBA的基础知识,但我想了解更多,这是我需要在短时间内。

当input已经打开的工作簿时,下标超出范围,VBA

堆栈的人, 我有一个麻烦的问题。 我正在写一个macros,允许用户select和使用已打开的工作簿。 在用户通过用户表单获得名称后,当我尝试设置工作簿或与其交互时,会出现下标超出范围的错误。 我已经确认工作簿已经打开,并且ExcelAp对象正在连接到正确的Excel实例。 这是相关的代码: Option Explicit …. Public Sub TerminalOpen() Dim WorkbookOpen As VbMsgBoxResult Dim ExcelAp As Excel.Application Dim FedExWkbk As Excel.Workbook …. Else Set ExcelAp = Excel.Application WorkbookSelection.Show WkbkFedExTracking = Trim(VBA.Left(WkbkFedExTracking, InStr(1, WkbkFedExTracking, ".", vbTextCompare) – 1)) Set FedExWkbk = ExcelAp.Workbooks(WkbkFedExTracking) <<<<< This is where the error occurs FedExWkbk.Activate End If 为了logging,我也尝试了很晚才把ExcelAp绑定起来。 […]

自动化 – 在Excel上replace连接属性

我目前正在维护一些旧的(新格式.xlsx),每个连接超过60多个连接,每个连接从SqlServer提供一些不同的表。 我正在寻找某种工具包,模块,独立脚本(或任何其他的东西),让我批量更改每个连接属性中的命令文本 。 这个改变不应该比改变表名的一部分更难,因为新表只包含表所需的信息。 到目前为止,我所需要的只是那些python模块,但是它们似乎没有实现任何处理连接的东西。 预先感谢您提供的任何帮助。

慢Excel自动化?

我正在使用下面的Powershell脚本删除列中的单元格的NumberFormat大量的文件,所以所有的分数将被显示。 该列可能有小数,文本或date等; 只有这些十进制/货币格式(格式为0*或*#* )的单元格才需要应用 但速度很慢(每秒钟检查/更新两到三个单元格)。 有没有更好/更快的方法来做到这一点? $WorkBook = $Excel.Workbooks.Open($fileName) $WorkSheet = $WorkBook.Worksheets.Item(1) $cell = $WorkSheet.Cells $ColumnIndex = 10 # The column may have decimal, text or date, etc. $i = 2 while ($cell.Item($i, 1).value2 -ne $Null) # Replace it to find the last row# of column 1 may cut the time in half? How? { […]