Tag: 自动化

如何使用OLE将button添加到Excel

我使用这样的OLE方法: var xlApp, xlWorkBook, xlWorkSheet, arr: Variant; begin xlApp := CreateOLEObject('Excel.Application'); xlApp.Visible := True; end; 如何添加button到Excel? 以及如何分配一个存在的马克在这个button? 我在哪里可以findDelphi-OLE-Office文档? 谢谢。

如何使用Qt将颜色应用于excel单元格?

我是Qt新手。 我写了一个程序来读写excel文件中的数据。 void Excel::Color(const QString& Sheet_Name,const QString& cell,const QString& color_Name) { QAxObject* Worksheet = activeWorkbook->querySubObject("WorkSheets(const QString&)",Sheet_Name); QAxObject* Cell_Range = Worksheet->querySubObject("Range(const QString&)",cell ); } 现在我需要将颜色应用于特定的单元格。 有没有可能实现这一目标?

如何可靠地确定文件是否已在Microsoft Excel中打开?

我正在实现一个接口到Excel。 我正在使用COM来直接从C ++自动化Excel。 我的大部分应用程序工作可靠。 但是,我不能检测文件是否已经在Excel中打开。 如果它是开放的,那么我想通知用户在运行模拟之前closures它。 我不使用MFC,VB或.NET。 我的解决scheme必须为Excel版本97至2010年工作。如果我可以以编程方式知道Excel的版本,可以使用不同的技术为不同的Excel版本。 我在同一个文件夹中查找名称为“〜$ xxx”(其中“xxx”是原始文件名)的文件,以确定Excel是否创build了会话锁。 但是这种技术并不总是有效。 一个类似的问题是一旦模拟开始在我的程序中,我想阻止用户在写入模式下打开文件(只读模式是OK)。

使用Visual Basic从Internet Explorer中提取类中的值

有了这段代码,我想从网站检索一个特定标签的值,并将其放在我的电子表格中: Sub get_tit() Dim wb As Object Dim doc As Object Dim sURL As String Dim lastrow As Long lastrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).Row Set wb = CreateObject("internetExplorer.Application") wb.navigate "https://www.tyre-shopper.co.uk/search/205-55-16/V/91" Do While wb.Busy Loop Set doc = wb.document Price = SelectNodes("#more-tyres > li:nth-child(4) > div > div.result-buy > form > span.tyre-price > div.tyre-price-cost.tyres-1 > strong") Range("A5").Value […]

如何使用PowerShell插入Excel公式?

公式=LEFT(AB4,FIND(" ",AB5)-1在Excel中完美工作,但似乎在PowerShell中导致错误,我得到此错误: 来自HRESULT的exception:0x800A03EC 在C:\ Scripts \ Excel_NUID2.ps1:21 char:1 + $ worksheet.range(“AH5:AH $ rows”)。formula =“= LEFT(AB4,FIND(”“,AB5)-1” +〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:OperationStopped:(:) [],COMException + FullyQualifiedErrorId:System.Runtime.InteropServices.COMException 我的PowerShell脚本代码; #Open Up the Workbook# $excel = new-object -comobject Excel.Application $excel.visible = $false $workbook = $excel.workbooks.open("c:\Users\Jack\documents\NUID_Status_Report.xlsx") $worksheet = $workbook.Worksheets.Item(1) $rows = $worksheet.range("A1").currentregion.rows.count ### Set up a filter ### $headerRange = $worksheet.Range("a4","aj4") $headerRange.AutoFilter() | […]

Excel自动化。 需要从范围中select多个项目

我有代码,让我select一个单一的项目在一个范围内: COleVariant vItems = cstrAddr; hr = AutoWrap( DISPATCH_PROPERTYGET, &vCell, irange, L"Item", 2, COleVariant((short)(1)), COleVariant((short)(1))); if (FAILED(hr)) return hr; // Use the dispatch interface to select the cell COleVariant result; hr = AutoWrap( DISPATCH_METHOD, &result, vCell.pdispVal, L"Select", 0); if (FAILED(hr)) return hr; 这工作正常。 不过,我需要select范围内的所有单元格,但是我一直无法在Item属性的“get”调用中find指定此方法的方法。 尝试使用-1,-1 …尝试在2个变种中传递一对bstr,指定冒号分隔的列和一系列行; 也尝试传入一个范围指定的string的单个参数。 没有工作。 更新 :我也试过了 hr = iRange->Select(vResult); 这确实返回S_OK,但它不select范围。 通常,我不能直接调用iRange结构中的函数; […]

如何使用C#在Excel中突出显示数据范围?

我不知道是否有一种方法来复制插入图表对话框function使用C#。 我需要的是显示一个popup窗口,但更重要的是让用户select数据范围。 我也想用Excel的彩色方块突出显示范围。 插入图表时,这是一个如何突出显示范围的图像。 我希望能够从我的C#加载项中获得这些框。 Excel范围突出显示http://img696.imageshack.us/img696/5290/excel.png

通过Excel自动化创build文档时,请保存“保存更改”

在我正在开发的一系列业务应用程序中,我们有能力导出到Excel,这是我们通过Excel自动化实现的。 我们有两种导出方法 – 一种是保存文件,然后将它们附加到Outlook电子邮件(通过自动化); 另一个实际上是一个“预览”,它执行导出到Excel,但最终使应用程序可见,而不是保存/电子邮件。 报告中的一个问题是,当他们预览时,不做任何更改,并尝试closuresExcel,它提示标准的“是否要保存您的更改”。 他们的意见是,他们没有做任何改变,所以不应该显示这个信息。 有没有什么方法可以压制这个消息,而不是强制保存到一个我们必须手动清除的位置“在以后的时间点”?

使用参数调用macros:Python win32com API

我想要做的就是从我的Python代码中调用一个macros。 这里是来源的样本: xl = win32.gencache.EnsureDispatch('Excel.Application') xl.Visible = 1 xl.Workbooks.Open("C:\\Program Files\\Microsoft Office\\Office14\\XLSTART\\perso.xlsm") xl.Workbooks.Open(argv[1]) xl.Application.Run('perso.xlsm!' + argv[2]) xl.Application.Run('perso.xlsm!' + argv[2] + '2') xl.Workbooks.Open(argv[0]) xl.Application.Run('perso.xlsm!aggregate_report_ouverture_appli') xl.Application.Run('perso.xlsm!macro', 'lol') xl.Save() xl.Quit() 前两个macros工作正常。 但最后需要设置一个参数(在这种情况下“大声笑”)。 有了这个尝试: xl.Application.Run('perso.xlsm!macro', 'lol') 我的macros是调用,但参数没有设置。 任何想法如何做到这一点,或者我可以find这个模块的“javadoc”(是的,我来自Java世界!)。 如果你需要更多的解释,只需告诉我。 谢谢。 达米安。

Excel VBA:自动将不同工作簿中的范围复制到一个最终的目标工作表中?

我将从位于多个工作簿中的大量数据生成一些图。 数据在所有工作簿中的格式完全相同,并驻留在同一级别的文件夹中。 我将把数据的部分(范围)放到一个最终的工作簿中,我将从中生成我的图表。 这让我觉得这种事情对VBA自动化来说是成熟的。 唯一的问题,我是一个新手。 我试过编写伪代码,然后用我认为是正确的VBAreplace它。 我已经四处寻找例子,并尝试Excel帮助文件,但我错过了一些重要的步骤…以及一些基本的步骤。 很多事情似乎都是错的(至less在周末之前你会有些微笑)。 如果有人能指出我的大脑放弃了我,我会非常感激。 另外, 如何在同一行的列B中添加范围来自的文件的名称? 这是真的可以帮助我,但我找不到如何做到这一点的例子。 Sub CopySourceValuesToDestination() Dim DestPath As String Dim SourcePath As String Dim Folder As Variant Dim Folders As Variant Dim FileInFolder As Variant Dim Range1 As Range Dim Range2 As Range Dim DesitnationPaste1 As Variant Dim DesitnationPaste2 As Variant Folder = Array("ABC", "DEF", "GHI", […]