- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Excel 中有一个已经编写好的宏,并且报告了有关此问题的错误,我必须修复此问题。初步调查如下...有一个ABC.xls
文件,其中包含宏
。
现在,宏有一个名为 changeTheCode
的 sub
,当我按 Ctrl + M
时,它就会被调用。
此子命令将打开一个打开文件对话框
,用户可以在其中选择 CSV 文件。我存储在所有函数外部声明的全局变量中的 CSV 文件的路径...
Public txtFileNameAndPath As String
当用户关闭 Excel 时,此全局变量将用于将更改保存到 CSV 文件中。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call saveUnicodeCSV
Call deleteXLS
End Sub
我使用此 ABC.xls
文件打开 ABC123.CSV
文件。
我使用此 DEF.xls
(ABC.xls 的副本)文件来打开 DEF123.CSV
文件。但是,当我使用 Ctrl + M
打开 DEF123.CSV
时,ABC.xls
的子 changeTheCode
是被调用并且 DEF.xls
的全局变量 txtFileNameAndPath
为空,当我关闭 Excel 时,因此不会保存内容。
设置全局变量的代码。
Public txtFileNameAndPath As String
Sub CodePageChange()
Dim SheetName As Worksheet
Dim fd As Office.FileDialog
Dim sheetName1 As String
Dim tabSheetName As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
'....
'....
'....
If .Show = True Then
txtFileNameAndPath = .SelectedItems(1)
Else
MsgBox "Please start over. You must select a csv file."
Exit Sub
End If
End With
有关如何处理此问题的意见将对我有很大帮助。
注意:包含宏的 Excel 将提供给客户。因此,我不能要求客户进行一些注册表调整以在单独的实例中打开 Excel。
谢谢。
最佳答案
我认为的问题是,当您将相同的宏名称绑定(bind)到快捷键时,打开的第一本书将被分配给该快捷键。
解决方法是创建另一个宏来根据工作簿名称调用正确的宏。这可能需要您将某些工作簿和工作表替换为 ActiveWorkbook 或 ActiveWorksheet。但请先尝试一下。
这只是我尝试过的示例代码,但请根据您的需要进行编辑。我尝试制作两个文件 a.xlsm 和 b.xlsm。区别是 a.xlsm 在第一行有 msgbox“a”,b.xlsm 在第一行有 msbox“b”。您可以先打开 a.xlsm 然后打开 b.xls 进行检查。然后指定相同的快捷键。您将看到,当您在 b.xlsm 中运行 Ctrl+M 时,将运行的宏将位于 a.xlsm 中,并带有 msgbox“A”,但随后它将调用 b.xlsm 中的正确宏。
简答
此代码使用 Application.Run
从特定工作簿运行宏。创建一个辅助宏来检查文件名然后附加宏名称。
因此,当您按 ctrl+m 时,无论从哪个工作簿运行 run_code,它都会返回到 activeworkbook 并从该工作簿运行宏(在本例中为 plaster)。它还会使用 activeworkbook 值填充公共(public)变量。
https://www.rondebruin.nl/win/s9/win001.htm application.run 的一些示例
到目前为止,最简单的解决方案就是添加来电宏
调用者宏:
Sub call_changeTheCode() ' add to all workbooks, that have changeTheCode macro then assign to Ctrl + m
Application.Run ActiveWorkbook.Name & "!changeTheCode"
End Sub
概念证明,而不是您的实际代码,请使用上面的调用者宏:
Public varvar As String
Sub run_code() 'assignt to shortcut key CTRL+M both macros in a.xlsm and b.xlsm
MsgBox "a" ' to test create another workbook and change this to b
file_path = ActiveWorkbook.Path 'just to check path
file_name = ActiveWorkbook.Name 'gets the file name
MsgBox file_path 'msgbox the file_path
MsgBox file_name 'msgbox the file_name
MsgBox file_name & "!plaster" 'msgbox the file name plus macro name, in your instance it would be "ABC.xlsm'!macro_name" please note the format
Application.Run file_name & "!plaster"
End Sub
Sub plaster() 'this is the test macro that will show correct macro in workbook is called
varvar = ActiveWorkbook.Name
MsgBox "hi this is workbook " & varvar
End Sub
关于vba - 如果打开 2 个具有相同宏的相似 xls 文件,则全局变量为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45464200/
我正在使用 Python 2.76 向 .aspx 网页提交查询并通过 BeautifulSoup 获取结果,并希望将它们存储到 Excel 电子表格中。 import mechanize impor
我正在学习使用 Hadoop 执行大数据相关操作。 我需要对拆分为 8 个 xls 文件的数据集集合执行一些查询。每个 xls 文件都有多个工作表,查询只涉及其中一个工作表。 数据集可以在这里下载:h
我有一个 excel 文件,但文件大小太大,您有什么建议可以让我们以相同的格式减小文件大小吗? 最佳答案 有一些常见技巧可以减小 Excel 文档的大小,同时保持 Excel 格式。这取决于文件的具体
我有多个目录,每个目录包含任意数量的 .xls 文件。我想获取任何给定目录中的文件并将它们合并到一个 .xls 文件中,使用文件名作为选项卡名称。例如,如果有文件 NAME.xls、AGE.xls、L
使用下面的 Python 测试代码,我试图将 Excel (*.xls) 文件中唯一的工作表复制到一个包含一个工作表的新 Excel 文件中。 输入电子表格如下所示: from copy import
我有一个 xls 文件,其中包含 15 张数据,我想将所有数据复制到另一个 xls 文件中。我有很多这样的文件,所以我想使用宏 vba 编码对其进行自定义。我想在第一张纸上设计按钮,它会运行宏代码并将
我正在尝试从 xls 中读取数据,该数据运行良好 java.io.File f1=new java.io.File("E:/SELENIUM DATA/First_P1/DATA_SHEET.x
我有一个文件 .XLS 扩展名,但保存为 XMl 电子表格 2003 ,想要读取该文件并使用 java 代码将其转换为 .XLS 扩展名,我的代码如下 - 公共(public)类 ExcelImpor
我已经创建了 Servlet,它下载 POI XLS 文件,在第一个 get/post 请求时,新文件是使用sheet0下载的。当我执行第二个请求时,正在下载两张新文件,sheet0 是上一个请求,s
我有大量格式为:YYYYDDMM_rest_of_filename.xls 的 excel 文件 我如何使用 ruby 在 YYYYMMDD_rest_of_filename.xls 的可能数量较
我将 xlsx 文件保存在 firefox 中,浏览器将其识别为 97-2003 工作簿 (.xls) 当我打开 xls 文件时,它会生成弹出窗口 我也在不同的机器上尝试过这个,它在 firefox
伙计们。我在 DB 有日期作为字符串“d/m/Y”。 当我将此日期输入 Excel 时,它会显示正常日期,例如 2000 年 3 月 10 日,但是当我单击单元格时,它会显示值 '03/10/2000
我正在研究 INFORMIX 4GL 程序。该程序生成输出文本文件。这是输出的示例: Lot No|Purchaser name|Billing|Payment|Deposit|Balance|
代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%
我的应用程序正在从 MYSQL 动态获取数据并显示。问题是我什至必须选择“导出到 Xls”文件。这些文件应该是 A4 大小,所以我应该自定义 Xls 文件中内容的字体大小以适应 A4 大小。如果可能的
我必须运行一些 SQL 查询并将结果放入电子表格中。由于我处于 Spring/Java 环境中,因此我打算使用 JDBC 运行查询、迭代 ResultSet,并使用 Jakarta POI 创建一个简
我有一个包含多张工作表的 Excel 电子表格。格式如下: Date A B C D E F
我正在使用 jquery 数据表插件来显示数据。我添加了文件另存为 excel、csv 和 pdf 的选项。 虽然它允许我将表格内容保存为文件。但在 excel 和 csv 情况下,它都会将文件保存为
我正在尝试弄清楚如何读取 XLS 文档的内容并且我能够很好地获取字节,但我不知道从这里到哪里去。尝试 [[NSString alloc] initWithBytes:data.bytes length
在我的应用程序中,我需要以预定义格式导出到 xls 文件。 所以我刚刚集成了 php_excel2007。我正在使用一个具有预定义格式的模板。 问题 这里的单元格数据可能会动态变化。如果数据远大于单元
我是一名优秀的程序员,十分优秀!