excel - 如何在格式化表中找到上次使用的列?
问题描述
我正在尝试获取格式化表中最后使用的列并插入一个值。但它总是返回表内的最后一个(=空)列。看下图理解:
出于某种原因,文本“-seit-”被放置在第 16 列的“10.Besitzer”列中,而它应该被放入第 7 列的“1.Besitzer”中。
我的代码如下所示:
LastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1 '+1 to go to next empty row
'here it adds values in empty row, starting from column 1(ID) until column 6(IT).
'I left out this part of code.
LastCol = ws.Cells(LastRow, Columns.Count).End(xlToLeft).Column 'Search for last column
ws.Cells(LastRow, LastCol).Value = "- seit -" 'place text into last column
如果感觉它会导致问题,因为它是一个格式化的表格,但我不确定。我非常感谢任何帮助。
解决方案
请使用下一个功能:
Function LastUsedColInTable(tbl As ListObject, iRow As Long) As Long
Dim C As Range
With tbl.Range.rows(iRow)
Set C = .Find(what:="*", After:=.cells(1), LookIn:=xlValues, _
searchorder:=xlByColumns, SearchDirection:=xlPrevious)
If Not C Is Nothing Then
LastUsedColInTable = C.Column
Else
LastUsedColInTable = 1
End If
End With
End Function
可以这样测试:
Sub testLastColInTable()
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects(1)
Debug.Print LastUsedColInTable(tbl, 2)
End Sub
推荐阅读
- javascript - .then 不是函数/承诺
- ruby-on-rails - Rails:将 Mongoid 文档添加到临时存储以在文件导出表中使用
- javascript - 尝试根据子属性对对象键进行排序
- bash - 您如何配置 Puppet exec 以执行另一个命令作为 onlyif 的一部分
- apache - Apache NiFi TCP 客户端/服务器
- ms-access - 访问 VBA:将 GetRows 与书签结合使用
- python - 如何为具有动态字典的 python 类实例创建自定义 __hash__ 和 __eq__
- amazon-web-services - 如何查看 AWS Batch 计算环境错误?
- python - 将 Pylint 版本 1.9.2 升级到最新版本
- control-m - Control-M 先决条件 - 使作业依赖于服务器可用性