excel - 编辑表功能只能以不可预知的方式工作
问题描述
我想做什么:如果值类似于传递的标准,则更改表数据
代码:
Sub editTableData(tableName As String, rw As Integer, col As Integer, str As String)
Sheet1.ListObjects(tableName).Range(rw, col).value = str
End Sub
Sub EDITTABLEDATAONOTHERPAGE()
Call editTableData("statement", 20, 6, "Why did this work?")
End Sub
结果:
03/19/2020, WAL-MART SUPERCENTER, 67.07, blank, blank, "Why did this work?"
但是在这里调用时:
Function categorize(criteria As String) As Double
Dim statement As listobject, statementNames As Range, statementCategory As Range, statementCredit As Range, name As Range
Set statement = Sheet1.ListObjects("statement")
Set statementNames = Sheet1.ListObjects("statement").ListColumns("Name").DataBodyRange
Set statementCategory = Sheet1.ListObjects("statement").ListColumns("Category").DataBodyRange
Set statementCredit = Sheet1.ListObjects("statement").ListColumns("Credit").DataBodyRange
'---this is the part that matters:--------------------------------
For Each name In statementNames
If name.value Like criteria + "*" Then
Call editTableData(statement.name, name.row, statementCategory.column, statement.name)
categorize = categorize + statementCredit(name.row, statementCredit.column).value
End If
Next
End Function
它进入方法,它分别将 editTableData("statement", 20, 6, "statement") 作为 String, int, int, String 传递(所以相同的数据),但它只是停止工作,我不知道为什么。
任何有启发性的东西都会很好,这是我使用这个表来调用公式的表:
一张桌子的照片
更新/修正:这是调试照片: 在方法 中调用方法(参考本地窗口获取值): 在方法中
当我再次按 F8 时,它崩溃了......没有错误消息,上面或下面的其他单元格都没有改变,所以它根本不工作。如果这是一个很容易解决的索引问题
解决方案
推荐阅读
- java - Java Native Interface 中的 jsize 类型是什么?
- javascript - Three.js 在一个网格上使用多种材质
- javascript - 引导活动选项卡显示事件侦听器
- git - 从 SVN 迁移 - 开始使用基本 Git 工作流程
- c++ - C++ dynamic_cast 一个模板类到另一个模板
- javascript - 调用第二个实例时,Electron ipcRenderer 调用不起作用
- javascript - 如何使用 async/await 从 fetch 函数中保存数据
- javascript - 如果工作人员对他的消息做出反应,如何让 Discord.JS 客户端赋予消息作者角色?
- c - 程序从c文件中读取最后n行的问题
- javascript - 如何在 Capybara 规范中找出 JS 是否处于活动状态?