我应该如何使我的VBA代码与64位Windows兼容?

我有一个在Excel 2007中开发的VBA应用程序,它包含以下代码以允许从Shell32.dll访问ShellExecute函数: Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long 我原本说: 显然,该应用程序不会在64位版本的Windows上编译(仍然使用32位Office 2007)。 我认为这是因为Declare声明需要更新。 我读过Office 2010引入了一个新的VBA运行时(VB7),并且这个新的关键字可以在Declare语句中使用,以允许它在64位Windows上正常工作。 VB7还具有新的预定义编译器常量,以支持使用旧声明或新声明的条件编译,具体取决于应用程序是在32位还是64位Windows上运行。 但是,由于我坚持使用Office 2007,我需要一个替代解决scheme。 我有什么select? (如果可能,我真的不希望发布我的应用程序的2个独立版本)。 然而,根据David的回答,我错误地认为我的Declare声明不起作用的情况。 Office 64在Windows 64位上的唯一情况是不起作用的。 所以,Office 2007不是问题。

从控制台生成/打开CSV文件格式错误

我正在使用控制台应用程序写出一个逗号分隔的文件,并使用Process来打开文件。 将查询结果转储到excel是一种快速和肮脏的方法。 有一段时间这工作得很好,但最近我开始得到“ 你试图打开的文件'blah.csv',是在不同的格式比指定的文件扩展名 ”。 并点击“是”后 Excel已检测到blah.csv是SYLK文件,但无法加载它。 文件有错误或者它不是SYLK文件格式。 单击确定以尝试以不同的格式打开文件。 按确定打开它,并正确显示。 我看到一些解决scheme,在networking世界添加内容处置标题,但由于我使用一个进程打开它,我不能应用该修复程序。 我的代码打开文件: ProcessStartInfo info = new ProcessStartInfo(); info.FileName = filePath; info.UseShellExecute = true; Process.Start(info); 如果我在Notepad ++中打开文件并显示所有字符,它只会显示为带有CR LF行尾的常规CSV。 经过一番调查,似乎标题行触发了错误。 如果我只是在标题前写一个空行,错误就会消失。 标题看起来像这样: 标题1,标题2,标题3 CRLF

Excel:将单元格的背景颜色设置为单元格中数据的rgb值

我有一个包含rgb值的列,例如 127,187,199 67,22,94 在Excel中,有什么办法可以使用它来设置单元格的背景颜色?

Excel公式获取单元格颜色

我想知道我们是否可以通过任何内联公式的帮助找出CELL的颜色(不使用任何macros) 我正在使用家庭用户办公软件包2010。

按Esc时停止Excelmacros执行不起作用

我在XP上运行Excel 2007。 有没有办法阻止一个macros在执行过程中运行,而不是按下转义? 通常如果我认为我创build了一个无限循环或者其他的东西,那么我打了一个escape,它会抛出一个错误,但macros停止。 这一次(我已经做了,但没有这么糟糕),我build立了一个msgbox进行一些快速debugging。 原来,它必须循​​环大约6000次,这意味着我必须“确定”6000个消息框,这花了几分钟。 我没有保存之前运行(另一个错误),所以我不能打开任务pipe理器退出。 有没有另外一种方法来阻止macros的执行情况,如果我再次这样呢?

使用Pandas为同一工作簿的多个工作表指定pd.read_excel()

我有一个大的电子表格文件(.xlsx),我正在使用Pythonpandas处理。 碰巧,我需要从该大文件中的两个选项卡中获取数据。 其中一个标签有大量的数据,另一个只有几个方格。 当我在任何工作表上使用pd.read_excel()时,它看起来像整个文件被加载(不只是我感兴趣的工作表)。 所以当我使用这个方法两次(每个表单一次)时,我实际上不得不让整个工作簿被读取两次(即使我们只使用指定的表格)。 我是用错了还是仅仅用这种方式来限制? 谢谢!

在Excel中为所有单元格添加通用前缀

我在每个单元格中都有一些文字。 我想在所有单元格的开始添加一些文本,例如“X”。 例如: AB —– >>>> —- 1 X1 2 X2 3 X3 什么是最简单的方法来做到这一点?

在Excel中是否有等效的printf或String.Format?

我似乎花费大量的时间在电子表格上工作的公式,如: ="some text '" & A1 & "', more text: '" & A2 &" etc." 使用printf或String.Formatstring会更快一些 =String.Format ("Some text '{0}', more text: '{1}'",A1,A2) 有没有这样的内置到Excel中,或者我可以不写一个macros调用CLR?

Excel如何用文本填充所有选定的空白单元格

是否可以selectExcel表格中的所有银行单元格,并将所有单元格中的值相同? 我只是想用“null”来填充它们 我有Excel 2010学生

在PHP中将MySQL数据导出到Excel

我试图让我的MySQL数据到Excel文件,但我有Excel单元格的问题。 我所有的文本都去了一个单元格,我想每个行的值在单独的Excel单元格。 这是我的代码: $queryexport = (" SELECT username,password,fullname FROM ecustomer_users WHERE fk_customer='".$fk_customer."' "); $row = mysql_fetch_assoc($queryexport); $result = mysql_query($queryexport); $header = ''; for ($i = 0; $i < $count; $i++){ $header .= mysql_field_name($result, $i)."\t"; } while($row = mysql_fetch_row($result)){ $line = ''; foreach($row as $value){ if(!isset($value) || $value == ""){ $value = "\t"; }else{ $value = […]