我正在尝试将Excel VBA宏从Windows XP切换到Windows 7。这两个Windows版本都是32位操作系统。我的Windows7版本是企业版。
VBA代码在Windows XP上运行良好。当我试图在Windows7上运行代码时,它崩溃了,并且没有报告错误描述。
我已经注册了msinet.ocx,这似乎是Microsoft Internet Transfer Control 6.0所必需的。我还试图通过添加额外的com组件tabctl32、comctl332/232/32和comdlg32来修复安全问题,所有这些组件都是ocx文件。然而,没有任何变化-我的代码在Windows7上
我可以使用VB.Net 2010启动带有所需文档的Excel:
Dim p As New System.Diagnostics.Process
p.StartInfo.FileName = "c:\temp\myfile.xlsx"
p.Start()
打开文件后,Excel启动时正常。我编辑了该文件,但当我关闭它时,Excel不会询问我是否要保存更改。所以它会关闭并丢失我的编辑。
如果我对文本文件执行相同的操作:
Dim p As New System.Diagnostics.Process
p.StartInfo.FileName = "c:\temp\
当我通过OLE自动化Microsoft时,我如何保证不会出现弹出对话框?我使用的是Perl模块(Win32 32::OLE)。我可以使用以下代码避免大多数对话框弹出:
use Win32::OLE;
use Win32::OLE::Variant;
use Win32::OLE::Const;
my $excel_symbols = Win32::OLE::Const->Load('Microsoft Excel');
my $excel = Win32::OLE->new('Excel.Application', sub { $_[0]->
使用Access 2010、WinXP。我正在尝试迭代文件夹集合,从每个文件夹中的每个Excel文件中收集值,以添加到我的数据库中的一个表中。问题是,即使我每次都关闭工作簿,它的关闭速度肯定不够快,因为如果相同的文件名出现在两个连续的文件夹中,我会收到一条错误消息:
Run-time error '1004':
A document with the name 'someWorkbook.xls' is already open.
下面是我的代码:
sub traverse()
Dim fso As filesystemobject
Dim fObj As F
我试图在公式中搜索公式中的一个特定部分,然后用一个新的部分替换它。为此,我使用了以下代码:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i As Integer
If Range("B1").Value = "National" Then
For i = 1 To 135
Range("C" & i).Formula = Replace(Range("C" & i).Formula
我目前正在实现一个内部使用的小型实用程序,它将数据从一组Excel文件导入到我们的应用程序中。根据Excel单元格的类型,我决定如何处理数据。Excel文件只能包含字符串、数字和布尔单元格,如果遇到任何其他单元格,程序可以在运行时崩溃。
现在Scala正确地警告我,单元格类型上的匹配不是详尽无遗的,单元格可以有空白类型、公式类型、错误类型.
除了明显的警告外,还有什么办法来抑制警告吗?
t match {
case STRING => ???
case NUMERIC => ???
case BOOLEAN => ???
case _ => throw
我正在使用以下代码读取具有OLDB连接的Excel文件
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
var fileName = string.Format("{0}\\s23.xls", Directory.GetCurrentDirectory());
var adapter = new O
我正在处理一个可以在Access中部署的vba脚本,它可以打开、保存和关闭某个文件夹中的所有excel文件。
到目前为止,我有这个代码,它是一种工作,但有一些问题。一个是它实际上打开了excel,在循环完成后,一个看起来有点奇怪的空的excel仍然是打开的。这样,我还注意到,在任务管理器的进程下,这将导致运行excel进程,即使没有打开的excel实例。
其次,由于格式是xls,我正在处理excel兼容模式,不确定我是否找到了最好的解决方案,因为在文件扩展名和格式不同的情况下,我有时会在事后收到错误消息。
另外,我只是在寻找一些代码的一般改进。
这是我的代码:
Sub demo()
Dim d
我编写了一个宏,用于复制一个图表对象的格式并将其粘贴到其他图表对象中。宏成功完成,新创建的图表对象被正确创建。它做了它应该做的事情!但是,Excel在保存或处理新图表对象后立即崩溃。它在Excel 2010和Excel 2016中都会崩溃。
我已经隔离了导致Excel崩溃的代码片段。在下面的代码片段中,如果注释掉了第8-9行,Excel不会崩溃:
For Each cht In sh_plots.ChartObjects
With cht.Chart
'copies master chart format
master_plot.Chart.ChartArea
我有一个Excel文件,比如Plano.xlsx,我试图使用Autohotkey运行一个宏脚本。我不希望Excel在此过程中可见。VBA代码应该在第一个工作表的单元格C1中输入值99。经过几个小时的尝试和错误,Autohotkey脚本顺利运行,没有错误,即它在后台打开一个Excel进程,据说是编辑Excel文件,然后退出。问题是Excel文件根本不改变。如果我在Excel中手动将VBA模块粘贴到一个新的VBA模块中,而不使用Autohotkey,则VBA代码可以正常工作。
以下是代码:
#SingleInstance force
#Include Acc.ahk
VBcode=
(
Sub
因此,我创建了一个函数,允许用户使用SQL语句从excel文件中收集数据。以下是这项职能:
Public Function query_excel_file(ByVal filepath As String, ByVal sql_statement As String) As DataTable
On Error Resume Next
Dim m_sConn1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & file
我正在使用一个执行Excel自动化的web应用程序(我知道--不是首选的解决方案)。
我使用Excel 2007作为我的开发平台,但目标服务器使用Excel 2003。虽然我在开发期间明确选择了Excel11,但在尝试将Excel12互操作加载到目标服务器时,遇到了很多麻烦,之后我使用了晚绑定,而不是早期绑定。
这使我能够尽可能地实例化Excel (而且我可以看到Excel进程在目标服务器上的任务管理器中启动)。
但是,我无法调用后期绑定工作簿对象的Open方法。它把这个错误抛到我身上:
"Unable to get the Open property of the Workbooks
我想使用VBA代码从内部访问关闭Excel工作簿。下面的代码打开工作簿并正确运行工作簿中的VBA模块。关闭工作簿提示使用我希望避免的标准保存对话框。
我尝试将语句.Workbooks.Close修改为.Workbooks.Close SaveChanges:=True,但这实际上会导致代码崩溃。
Public Function Open_Share_Price_Excel()
' Change Cursor to Hourglass
Screen.MousePointer = 11
Dim Expath, ModName As String
Dim XLApp As Object
我正在使用PHPExcel库创建一个Excel文件,使用以下代码可以很好地工作:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($new_name);
当我尝试从其他web应用程序访问Excel文件时,遇到以下错误:
File is used by other program
如何在PHPExcel中关闭$objWriter来解决此问题?
对此有什么帮助吗。
我需要一种方法来安排自动打开Excel文件,刷新内容,然后保存并关闭它。
我以前这样做过,但我不能再打开文件,因为打开它会导致刷新、保存和关闭文件的宏运行。
在尝试了几种方法之后,我考虑了VBScript。我在这里找到了这段代码。
Dim objExcel, objWorkbook
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\...\Finances.xlsm")
objExcel.Visible = True
ob