VBA在循环期间在数组中存储多列然后返回值

2023-11-30

我有一个宏,它将用户定义的函数(代码中的 R.ajseasonX13)应用于工作表“NSA”中的多个列,然后返回工作表“SA”中的值。

问题是我的代码一次仅将该函数应用于一个列。一旦 VBA 不断在选项卡“NSA”和“SA”之间来回移动,结果会非常慢。

我知道如何创建一个包含需要使用函数“R.ajseasonX13”修改的所有列的范围。我的疑问是:如何将函数应用于其中一列,在代码运行时将所有列存储在矩阵中,然后仅返回具有调整值的最终矩阵?

我尝试创建一个数组,但我一直困惑于如何识别带有数字数据的第一行以及如何在 For 循环进行时向其中添加新列。

这是我的代码:

Sub Dessaz()
Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

Dim wsNSA As Worksheet
Set wsNSA = wb1.Worksheets("NSA")

Dim wsSA As Worksheet
Set wsSA = wb1.Worksheets("SA")

Dim col As Range
Dim nsaArray As Variant

'Finds the row of the first cell with numeric data in column A (where dates are stored)
wsNSA.Range(Cells(1, 1), Cells(1048576, 1)).NumberFormat = "General"
datas_col = wsNSA.Range(Cells(1, 1), Cells(10000, 1))
data1_linha = Application.Match(True, Application.Index(Application.IsNumber(datas_col), 0), 0)
wsNSA.Range(Cells(1, 1), Cells(1048576, 1)).NumberFormat = "dd/mm/yyyy"

'Determinates one of the parameters of the user defined function "R.ajseasonX13" used ahead
inicio = wsNSA.Cells(data1_linha, 1).Value
inicio = Year(inicio) & "-" & Month(inicio) & "-" & "01"

'LR is the last column with data and LC is the last column with data
LR = wsNSA.Cells(data1_linha, 1).End(xlDown).Row
LC = wsNSA.Cells(LR, 1).End(xlToRight).Column

'States another one of the parameters of the user defined function
p = 12

nsaArray = wsNSA.Range(wsNSA.Cells(1, 2), wsNSA.Cells(LR, LC))
For Each col In wsNSA.Range(wsNSA.Cells(1, 2), wsNSA.Cells(LR, LC))
  wsNSA.Activate
  nsa = wsNSA.Range(wsNSA.Cells(1, col.Column), wsNSA.Cells(LR, col.Column))

'Finds the first row with numeric data in each column of the data series
  num_linha = Application.Match(True, Application.Index(Application.IsNumber(nsa), 0), 0)
  nsaArray = wsNSA.Range(wsNSA.Cells(num_linha, col.Column), wsNSA.Cells(LR, col.Column))

'Applies the user defined function to the "nsa" columns and returns their value (but only one at a time, which is
'not as fast as possivle in VBA
'wsSA.Activate
  sa = Application.Run("R.ajseasonX13", nsa, inicio, p)
  wsSA.Range(wsSA.Cells(num_linha, col.Column), wsSA.Cells(LR, col.Column)) = sa
Next

End Sub

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA在循环期间在数组中存储多列然后返回值 的相关文章

  • C:将 unsigned char 数组转换为signed int(反之亦然)

    我正在尝试将无符号字符数组缓冲区转换为有符号整数 反之亦然 下面是演示代码 int main int argv char argc int original 1054 unsigned int i 1054 unsigned char c
  • 在 C# 中对由整数组成的多维 [] 数组进行排序

    我有以下数组 private int testSamples new testSamples 101 101 它应该代表一个名册 第0到100列 第0到100行 在这个名册中 掉落了各种化学液体 我为之做这件事的人希望以这样的方式工作 他可
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • 使用 for 循环 Python 为数组赋值

    我正在尝试将字符串的值分配给不同的数组索引 但我收到一个名为 列表分配超出范围 的错误 uuidVal distVal uuidArray distArray for i in range len returnedList for beac
  • 合并和颜色样式不适用于 Apache POI excel 2003 格式

    在 Apache POI 中 我为某些单元格应用了一些样式并合并了这些单元格 当我在 2010 年或 2007 年打开时 它工作正常 但在 2003 年 格式样式消失了 每次保存 2003 Excel 文件之前都会弹出兼容性检查对话框 请参
  • 如何让VLOOKUP在VBA中选择到最低行?

    希望自动在单元格中插入 VLOOKUP 公式 录制宏时 我指示它使用相同的公式填充下面的列 效果很好 但是 当 VLOOKUP 搜索的表发生变化 更多或更少的行 时 就会出现问题 在记录时 VLOOKUP 下降到表中的最后一行 273 但是
  • VBA 中的多线程

    这里有人知道如何让VBA运行多线程吗 我正在使用 Excel 无法用 VBA 本地完成 VBA 构建在单线程单元中 获得多个线程的唯一方法是使用 VBA 之外的其他具有 COM 接口的东西构建 DLL 并从 VBA 调用它 信息 OLE 线
  • 如何找到特定程序的安装目录?

    我已经成功地编写了一些用于工作的 VBA 宏 这些宏基本上创建了一个数据文件 将其提供给一个程序并对该程序的输出进行后处理 我的问题是程序安装路径是硬编码在宏中的 并且安装在我同事的计算机上可能会有所不同 我首先想到的是 我可以从每个人那里
  • Fortran 指针数组

    同样 Fortran 中的指针数组 好吧 我有一个派生类型 type t context pointer type t context pointer p ctx end type t context pointer 当我在主程序中执行以下
  • 将 Javascript 对象的属性从 string 更改为 int

    我有一个对象数组 每个对象具有三个属性 年份 总计 人均 例子 0 Object per capita 125 8 total 1007 2 year 2009 这些属性是字符串 我想创建一个循环来遍历数组并将它们转换为 int 我尝试了以
  • SQL Server,插入 Excel“链接服务器”时出现“无效列名”错误

    我有一个简单的 Excel 电子表格文档 运行 Office 2013 我使用 Microsoft Office 15 0 Access 数据库引擎 OLE DB 提供程序 将其用作数据库 我可以使用 MS SQL Server Manag
  • 关于 ArrayList[] x 的 Java 问题

    我一直对 ArrayList 数组有这个问题 也许你能帮忙 declare in class private ArrayList
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • 我可以获取VBA代码中的注释文本吗

    可以说我有以下内容 Public Sub Information TEST End Sub 有没有办法得到 TEST 结果 不知何故通过VBA 例如 在 PHP 中 有一个获取注释的好方法 这里有什么想法吗 编辑 应该有办法 因为像 MZ
  • 如何获得n个具有不同元素数量的数组的所有可能组合?

    我有一些在编程时未知的数组数量 也许是 3 或 4 或 7 每个数组都有一些元素 即 a 1 2 3 4 b 6 7 5 2 1 c 22 4 6 8 4 8 5 4 d e f g 我想通过从每个数组中采样一个数字来获得所有可能的组合 例
  • VBA ByRef 参数类型不匹配

    最初在我的主代码部分中 我有一个丑陋的 if 语句 尽管它会运行丑陋 我决定将其设为我要调用的函数 这导致我收到错误 编译错误 ByRef 参数类型不匹配 我的假设是该函数需要正确引用 尽管我一直在阅读文档并且不明白为什么 gt 声明 Sh
  • 标志状态的 VBA 替换

    根据文档 Outlook 中的 MailItem FlagStatus 属性是已弃用 https msdn microsoft com en us library microsoft office interop outlook maili
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特

随机推荐

  • 为什么 SQL 中没有“product()”聚合函数? [复制]

    这个问题在这里已经有答案了 当有 Sum min max avg count 函数时 有人可以帮助理解为什么没有 Product 内置函数 这个聚合函数最有效的用户实现是什么 谢谢 三位一体 如果您有可用的指数函数和对数函数 则 PRODU
  • 是否有一个函数可以检查字符串中的字符是否是字母表中的字母? (迅速)

    我正在将 python 程序转换为 swift 其中一个部分使用 for 循环来保留字符串中的每个字符 如果它是字母 在python中 就像使用 isalpha 一样简单 swift中有什么可以做到这一点吗 python 中的代码 word
  • PHP、PDO、MySQL,注意:尝试获取非对象的属性

    我仍在尝试围绕 php 进行思考 如果这是一个简单的错误 那么很抱歉 我已经搜索了很长一段时间 只能设法得到不同的错误 例如 未定义的索引 我试图做的是有一个函数可以从表中获取数据 目前它不包含很多数据 但最终将包含每个主网页的所有内容 它
  • NSParagraphStyle iOS - 如何检测块和列表?

    我有一个 NSParagraphStyle 对象 当使用 NSLog 检查时 它包含列表和块 但是似乎完全没有办法访问它们 我使用 OS X 创建文档并将其传输到 iOS 的文本视图中 其中列表和表格可以成功重新创建并显示在 NSLog 中
  • JavaScript 正则表达式原型

    为什么 Chrome 的控制台显示 对于 RegExp 的原型 console log RegExp prototype console log a proto 这是特定于实现的吗 IE 正在显示 这只是出于好奇而提出的问题 当我遇到这个问
  • 如何让 IBM DB2 提供程序与 Entity Framework 4.0 一起使用

    有人可以告诉我如何让 DB2 提供程序显示在 更改数据源 对话框窗口中吗 Steps 右键单击 edmx 设计图面 选择 从数据库更新模型 在更新向导中 单击 新连接 在 数据源 文本框旁边 单击 更改 在 更改数据源 窗口中 我仅在列表中
  • 没有主键可供引用的外键

    我有以下两张表 CREATE TABLE parent c1 INTEGER CREATE TABLE child c1 INTEGER c2 INTEGER c3 INTEGER CONSTRAINT fk c3 FOREIGN KEY
  • 读取VC++ CArchive二进制格式(或Java读取(CObArray))

    是否有关于用于序列化各种 MFC 数据结构的二进制格式的明确文档 我已经能够在十六进制编辑器中查看我自己的一些类 并使用 Java 的 ByteBuffer 类来读取它们 通过自动字节顺序转换等 然而 我目前在尝试引入 CObArray 数
  • OpenGL 离屏渲染

    我有一个应用程序 可以创建 3D 模型并从中导出图像 我用这个例子来做到这一点 include
  • 在 Glance Widget 中复制 Canvas 的最佳方式?

    在 Compose 中我们有方法Canvas 画线等 Glance中有类似的功能吗 如果没有 复制 Canvas 功能的最佳方法是什么 None
  • 为什么 sphinx 在同一行上格式化我的文档字符串参数

    我对 sphinx 比较陌生 想为我的项目生成文档 我的函数之一的示例可以在 Predict py 中找到 def arima rolling forecast training set testing set order solver l
  • 加载程序集和版本控制

    我正在考虑通过提供一些预定义的接口来向现有应用程序添加一些可扩展性 这些接口可以通过放置在特定位置并由应用程序拾取的 插件 来实现 应用程序的核心很少更新 而插件更新和部署则更加频繁 基本上 有这样的设置 in core assembly
  • 带有线性渐变的CSS过渡[重复]

    这个问题在这里已经有答案了 我正在尝试向一个按钮添加一个过渡 该按钮的背景是用 css 线性渐变制作的 但它不起作用 这是我的按钮的 CSS a button background webkit gradient linear left t
  • doctrine2 和 group_concat

    我一直在浏览文档 谷歌 但没有找到任何解决方案 有没有办法在没有本机mysql的情况下使用doctrine2 DQL 执行或模仿GROUP CONCAT eg SELECT u id u name GROUP CONCAT AS user
  • 错误:您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展

    我是 WordPress 新手 上传网站后我遇到了这个错误 该网站运行良好一段时间 然后就发生了这种情况 输入 URL 后 此文本将显示 您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展 转到 php ini 但找不
  • 使用自定义成员资格和角色提供程序在 MVC 中实现 IPrincipal 和 IIdentity

    我一直坚持自定义 iprincpal 和 iidentity 对象的实现 我现在花了一天的时间来搜索如何实施这些权利并用更多信息来扩展它 我想扩展信息 Context User Identity Name使用全名或其他名称等自定义变量 ED
  • 使用“if”语句检查后出现空指针异常

    我遇到了一个非常烦人的错误 说我遇到了空指针异常 但有一个 if 语句来检查文本是否为空 然后再继续 public String getFileData throws IOException String file name C Users
  • 使用 Passport js failureRedirect 方法发回数据

    我有一个 Passport js 本地注册策略 它使用 successRedirect 和 failureRedirect 方法 问题是 如果注册过程出现错误 Passport 只会重定向回注册表单 表单中没有任何数据 app post s
  • 您可以通过其中的符号对齐文本吗?

    我想显示这样的电子邮件地址列表 email protected email protected email protected email protected email protected hinxterpexterp email pro
  • VBA在循环期间在数组中存储多列然后返回值

    我有一个宏 它将用户定义的函数 代码中的 R ajseasonX13 应用于工作表 NSA 中的多个列 然后返回工作表 SA 中的值 问题是我的代码一次仅将该函数应用于一个列 一旦 VBA 不断在选项卡 NSA 和 SA 之间来回移动 结果