Excel VBA 模块在运行时未更新

2024-04-29

我有 2 个模块,主模块在运行时更新另一个模块,并在每次更新时运行该模块。

问题是另一个模块在运行时似乎没有更新(它运行第一个模块,因为输出全部根据第一个输入)。但运行完成后,我检查了其他模块,它已更新。但输出不符合更新的模块。

我已经问过这个问题,但没有得到答案。VBA 功能模块未计算所有输出值 https://stackoverflow.com/questions/56377315/vba-function-module-not-calculating-all-output-values

我发现了类似的问题,但该解决方案对我的情况不起作用。excel vba代码模块在运行期间未更新 https://stackoverflow.com/questions/51530915/excel-vba-code-module-not-updated-during-run/56434519?noredirect=1#comment99463915_56434519

Option Explicit

Public Sub AddNewWorkBookTEST()

Dim nextline As Long, LastUsedRowList As Long
Dim CodeString As String

Dim x As Long
Dim KWATT As Double


Dim folderPath As String
folderPath = Application.ActiveWorkbook.Path

LastUsedRowList = Sheet4.Cells(Rows.Count, 1).End(xlUp).Row

For x = 1 To LastUsedRowList
    KWATT = Sheet4.Cells(x, 1)
    CodeString = CodeStringGenerator(KWATT)

    ''Update the module code
    With ActiveWorkbook.VBProject.VBComponents("MyNewTest").CodeModule
        .DeleteLines 1, .CountOfLines
    End With

    With ActiveWorkbook.VBProject.VBComponents("MyNewTest").CodeModule
        nextline = .CountOfLines + 1
        .InsertLines nextline, CodeString
    End With

CallOtherModule x
''Calling the function in the second module (where the code was copied).
'''Cannot call the function directly from this sub, since excel will 
''''crash:Call MyNewTest.SortedArray(x)

Next x


End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub CallOtherModule(ItemsCounter As Long)
    Call MyNewTest.SortedArray(ItemsCounter)
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''The function that writes the code of the second module as String
Function CodeStringGenerator(KWATT As Double) As String

CodeStringGenerator = "'Option Explicit" & vbCrLf & "Public Function 
SortedArray(ItemsCounter As Long) As Variant()" & vbCrLf & vbCrLf _
& "Dim TempSortedArray() As Variant" & vbCrLf _
& "Sheet4.Cells(ItemsCounter, 2) = " & KWATT + 5 & vbCrLf _
& "End Function" & vbCrLf

End Function

在表4中,(输入,输出)(第一列,第二列)为:18, 23; 20、23; 10、23; 9、23; 9,23; 10,23。

但应该是18、23; 20、25; 10、15; 9、14; 9,14; 10,15。

这些例子只是为了说明问题。


虽然对动态编写代码的危险给予+1,但更改方法名称似乎会强制重新编译:

Public Sub AddNewWorkBookTEST()

    Dim nextline As Long, LastUsedRowList As Long
    Dim CodeString As String
    Dim x As Long
    Dim KWATT As Double


    Dim folderPath As String
    folderPath = Application.ActiveWorkbook.Path

    LastUsedRowList = sheet4.Cells(Rows.Count, 1).End(xlUp).Row

    For x = 1 To LastUsedRowList
        KWATT = sheet4.Cells(x, 1)
        Debug.Print KWATT
        CodeString = CodeStringGenerator(x, KWATT)
        ''Update the module code
        With ActiveWorkbook.VBProject.VBComponents("MyNewTest").CodeModule
            .DeleteLines 1, .CountOfLines
            nextline = .CountOfLines + 1
            .InsertLines nextline, CodeString
        End With
        Application.Run "MyNewTest.SortedArray_" & x, x
    Next x
End Sub


Function CodeStringGenerator(x As Long, KWATT As Double) As String
    CodeStringGenerator = "'Option Explicit" & vbCrLf & _
    "Public Function SortedArray_" & x & "(ItemsCounter As Long) As Variant()" & vbCrLf & vbCrLf _
    & "Dim TempSortedArray() As Variant" & vbCrLf _
    & "Sheet4.Cells(ItemsCounter, 2) = " & KWATT + 5 & vbCrLf _
    & "End Function" & vbCrLf
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel VBA 模块在运行时未更新 的相关文章

  • 如何从 PowerQuery/Excel 数据模型中具有多对多关系的两个表中选取数据?

    这是我第一次在 stackoverflow 上提问 让我们看看进展如何 我正在尝试将不同规模资产的场景管理器连接到其所属的成本时间序列 以便我可以计算属于特定场景的资产配置的现金流 这就是我需要连接的两个表 简而言之 的样子 场景管理器 S
  • Excel Q - 带有二维数组的 SUMIFS

    我有一个二维数组 水平轴上的日期和垂直轴上的标识号 我想要以特定日期和 ID 为条件的总和 并且我想知道如何使用 SUMIFS 来执行此操作 由于某种原因 我似乎不能 因为数组是二维的 而标准范围是一维的 谁能给我关于我可以使用的其他公式的
  • 使用 Apache POI 和 Java 创建 Excel (.xlsx) 文件后文件损坏

    我已经使用 Apache POI API 使用 Java 成功创建了 xlsx 格式的工作簿 Excel 我的代码如下 在 D 盘创建一个名为 RiponAlWasim xlsx 的文件 Workbook wb new XSSFWorkbo
  • Excel VBA - 循环文件夹中的文件、复制范围、粘贴到此工作簿中

    我有 500 个包含数据的 Excel 文件 我会将所有这些数据合并到一个文件中 实现此目标的任务列表 我想循环遍历文件夹中的所有文件 打开文件 复制此范围 B3 I102 将其粘贴到活动工作簿的第一张工作表中 重复但在下面粘贴新数据 我已
  • 检查所选单元格是否在特定范围内

    我正在使用 C 创建 Excel 加载项 如何检查选定的 或代码中范围表示的单元格 是否在特定范围内 例如如何检查单元格 P 5 是否在 A 1 Z 10 范围内 Use Application Intersect 像这样 在VBA中 Su
  • 如何用xlrd读取公式

    我正在尝试做一个解析器 它读取几个 Excel 文件 我通常需要位于行底部的值 您可以在其中找到所有上部元素的总和 因此 单元格值实际上是 sum 或 A5 0 5 可以说 对于使用 Excel 打开此文件的用户来说 它看起来像一个数字 这
  • 用于将 MS Word 表导出到 Excel 工作表的宏

    我有一个包含许多表格的word文档 有谁知道如何编写宏将此类表导出到不同的 Excel 工作表 答案摘自 http www mrexcel com forum showthread php t 36875 http www mrexcel
  • 如果字符串包含列表中的单词,则返回与列表值相邻的值

    目前我有一组单元格 每个单元格在无用的信息中都有一个唯一的标识符 我还有这些唯一标识符的列表 以及每个标识符对应的值 我想做的是找到一个单元格包含哪个标识符 如果有的话 然后输出相应的值 下面是一个例子 https i stack imgu
  • Excel如何获取一个时间间隔内的小时数?

    我有两列 Night shift start 19 00 Night end 04 00 我每天都有一些日期列 Work started 07 30 Worked ended 22 00 我想获取夜班开始和夜班结束之间的小数小时数 我需要计
  • 在 PowerPoint 中查找文本并替换为 Excel 单元格中的文本

    我正在尝试查找 PowerPoint 幻灯片中的单词列表并将其替换为 Excel 文件中单元格中的值 我在 PowerPoint 中运行 VBA 但出现此错误 运行时错误 2147024809 80070057 指定的值超出范围 代码似乎停
  • 基于非零的多维数组

    我正在使用以下命令从电子表格中提取单元格Interopt ExcelAPI 当我打电话时 object rangeValues object range get Value XlRangeValueDataType xlRangeValue
  • 如何以编程方式从 Excel 中的 VBA 宏中删除数字签名?

    有没有办法以编程方式从 Excel 工作表的 VBA 宏中删除数字签名 即相当于进入 VBA 编辑器 转到 工具 菜单 gt 数字签名 并单击 删除 的代码 有趣的问题 出于安全原因 它故意不属于 Excel 对象模型的一部分 可以从证书存
  • 即使在 Excel 2007 中插入行时也保持绝对引用

    我有一个电子表格 我希望单元格公式始终查看特定单元格 即使插入行或列并且特定单元格移动也是如此 实际上 我总是想查看表格的 顶部 单元格 即使在表格顶部插入了新行 例如 单元格 A2 的公式为 E 2 现在我突出显示第 1 行并执行 插入行
  • VBA仅清除数据透视表缓存,但保留数据透视表结构

    如何使用VBA清除数据透视表缓存 但不破坏数据透视表结构 我的数据透视表已连接到外部数据源 SQL 源决定哪个用户应该查看数据的哪一部分 当表刷新时 源会填充该表 我想保存 Excel 文件并使用干净的数据透视表 内部没有数据 分发它 结果
  • 如何在 MS Word 中的每个标题末尾应用宏?

    我有一个包含各种标题的文档 因此不一定是标题 1 或标题 2 而是所有类型的标题 我想做的是编写一个宏 例如 删除每个标题末尾的 2 个空格 例如 我们有 这是一个标题 在标题的最后 我会这样做 Selection Delete Unit
  • 使用 js-xlsx 解析 Excel 工作表

    我正在尝试解析用户指定的目录中的所有 Excel 文件 但js xlsx我正在使用的库似乎需要手动导航 var url test files test xlsx lt Located in the project directory var
  • 如何每次使用按钮将数据添加到 MATLAB 中的现有 XLSX 文件?

    我有一个函数可以生成一些变量 例如分数 对 错 未回答 使用按钮调用此功能 问题是如何每次将函数生成的这些值添加 附加到 XLSX 文件中 或者 如何创建 MAT 文件以便可以添加它 可能的解决方案是什么 附加到 xls 文件所涉及的挑战是
  • 复制列中的所有单元格[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一张表 有 200 行 行间有一
  • 使用 PDFMAKER 将多封电子邮件保存为 pdf

    我是 VBA 的新手 但我用 SAS 编写了一些程序 用汇编程序 大型机和 PC Word Perfect 宏 编写了一些程序 用 Java HTML 和其他东西编写了一些程序 我所做的是 当我遇到问题并且我认为我可以对其进行编程时 我会在
  • SSIS使用列位置而不是名称导入Excel文档

    我想知道是否可以通过按位置引用列来使用 SSIS 导入 Excel 文档 例如 导入列 A D M AA 等 我问这个问题是因为我需要从第三方加载多个 Excel 文档 每个文档在相应的列中包含相同的数据类型 但每个文档的列名称不同 Tha

随机推荐

  • 解决方案将无法构建,因为它无法从服务生成的类型转换为我的类型

    我有一个 WCF 服务项目 它构建得很好 可以生成可访问的 WSDL 并且 svcutil exe 不会生成任何错误 我有一个访问该 Web 服务的 服务管理器 项目 并且我已成功向其中添加了服务引用 ABCService 第三个项目包含我
  • 更新(合并)时缺少 Spring Data JPA 验证

    我正在使用 Spring Boot 1 5 4 RELEASE 和 Spring Data JPA 进行项目 遇到更新实体时未执行 Hibernate 验证器或至少在某些情况下未验证的问题 For Person如下所示 禁止使用空名称 并且
  • 0x0A 和 0x0D 之间的区别

    我正在研究蓝牙 我试图编写代码以在连接时继续监听输入流 我遇到了以下代码片段 int data mmInStream read if data 0x0A else if data 0x0D buffer new byte arr byte
  • 我在 signalr javascript 客户端中收到未定义的连接 ID

    根据我遇到的所有文档 我应该能够在连接启动后调用 connection hub id 这是我的代码 var handshake connection handshakeHub connection hub start done functi
  • 未捕获的类型错误:$(...).lightGallery 不是函数

    当我尝试单击该链接时 它会在浏览器控制台中显示 Uncaught TypeError lightGallery is not a function anonymous function index html 250dispatch jque
  • 如何进行快速但不准确的 InnoDB 行计数?

    PHPMyAdmin常见问题解答有话要说 http www phpmyadmin net documentation faq3 11关于 InnoDB 的大概行数 phpMyAdmin 使用快速方法来获取行数 并且此方法仅在 InnoDB
  • 从文件执行db语句

    我在我的应用程序中使用嵌入式 Apache derby 我有一个名为的 SQL 脚本创建的数据库 sql创建数据库中的所有表并用初始数据填充它 例如 SET SCHEMA APP CREATE TABLE study study id bi
  • 我被击败了 我只是想开发自己的画廊 但一开始我就失败了 在 a 中显示图像作为背景 div 我已经把我的代码颠倒了 搜索了网络 搜索了 stackoverflow 尽管我无法解决问题 这是我的代码 HTML PHP div class im
  • 有没有办法在 MATLAB 中执行函数内联?

    我可以使用什么语言功能或开箱即用的技巧来完成 MATLAB 中的函数内联 令人烦恼的是 Google 搜索 matlab 内联函数 http www google com search q matlab inline function揭示了
  • MKS/ PTC Integrity 源相当于 svn:ignore

    我们在工作中使用 MKS PTC Integrity 进行源代码控制 是否有与 subversion 中的 svn ignore 标志等效的东西 本质上 我想要一种方法来告诉 MKS 忽略文件夹 文件的更改 即我们的编译器输出文件夹等 您可
  • git 在子模块中添加远程

    gitmodule 文件有子模块 url 和路径的列表 与此类似 submodule vim bundle subRepo path vim bundle subRepo url https git com sub repo 并且在核心存储
  • AngularJS 服务 http 成功函数使用错误的“this”范围

    a 的成功函数 http put无权访问this内部调用的服务的范围 我需要在 PUT 请求的回调中更新服务的属性 这是我在服务中尝试做的事情的简化示例 var myApp angular module myApp function rou
  • Vue Cli 3 禁用代码分割 - 无法删除哈希文件

    我有一个vue config js设置效果很好 并取消了默认的代码分割 但它仍然输出一个 CSS 文件 其哈希值与具有好名称的 CSS 文件相同 我可以编写一个脚本来删除它 但我想知道是否有一种方法可以将文件设置为不输出带有哈希的CSS文件
  • 全局注册vue组件

    我有一个使用 vue cli 创建的 vue 应用程序 我正在创建一些组件 我想像这样使用它们
  • 为什么我无法使用 git push origin :branchname 删除远程 git 分支?

    当我尝试推送到远程 git 分支以删除它时git push origin branchname我收到以下错误消息 错误 无法推送到不合格的目的地 remotes origin branchname 目标引用规范既不匹配远程上的现有引用 也不
  • 读取Excel文件时的Pandas数据框和字符编码

    我正在阅读一个包含多个数值和分类数据的 Excel 文件 name string 列包含外语字符 当我尝试查看 name string 列的内容时 我得到了我想要的结果 但外来字符 在 Excel 电子表格中正确显示 以错误的编码显示 这是
  • 检查变量/键是否存在

    我有一位价值不同的客户 如果客户 是 则分数 10 如果客户 否 则得分 5 如果客户为空 则分数 0 对于第一个和第二个条件 我的 json 结构如下 json fields customer 1 0 3 self aaa value y
  • 如何使用带有 IF EXISTS 子查询的 SQL Select 语句?

    如何使用 IF EXISTS 语句 SQL Server 从子查询中选择布尔值 它应该是这样的 SELECT TABLE1 Id NewFiled IF EXISTS SELECT Id FROM TABLE2 WHERE TABLE2 I
  • 如何在rails 6 webpacker中添加jquery第三方插件

    我知道它很简单 但是随着 Rails 6 的更新 rails 6 中有新的语法用于管理由 webpacker 维护的 javascript 资源 application js require rails ujs start require
  • Excel VBA 模块在运行时未更新

    我有 2 个模块 主模块在运行时更新另一个模块 并在每次更新时运行该模块 问题是另一个模块在运行时似乎没有更新 它运行第一个模块 因为输出全部根据第一个输入 但运行完成后 我检查了其他模块 它已更新 但输出不符合更新的模块 我已经问过这个问