excel - 将编码放入 ListObject 表中
问题描述
下面的 VBA 代码向下查找表中的 B 列。当在 B 列中识别出一个值 (60) 时,我将 C 列中的相邻值复制到 D 列中。我尝试了一个偏移量,当不在正式的 ListObject 表中时它可以正常工作,但是当我收到一条错误消息时在“无效或不合格的参考”表中。如何更新 VBA 代码以在 Excel 表中工作?我四处搜索并尝试了一些更改,但仍然出现错误。
Sub TableFind()
Dim LastRow As Long
Dim rng As Range, C As Range
With Worksheet.ListObjects("myTable")
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
Set rng = .Range("B2:B" & LastRow)
For Each C In rng
If C.Value = "60" Then
C.Offset(, 3).Copy
C.Offset(, 4).PasteSpecial Paste:=xlPasteValues
End If
Next C
End With
End Sub
解决方案
无需查找表中的最后一行;DataBodyRange
指的是表格的主体,所以只需使用它。
假设您的表从 A 列开始,您可能会执行以下操作:
With Worksheet.ListObjects("myTable")
For Each C in .ListColumns(2).DataBodyRange
If C.Value = "60" Then
C.Offset(, 2).Value = C.Offset(,1).Value
End If
Next C
End With
推荐阅读
- javascript - 访问内部网站上的外部图像 URL 时出现 403 错误
- azure - Azure NSG 的备份机制
- azure-log-analytics - 是否有任何 KQL 查询来提取页面视图,从 Azure-Log 分析上的 W3C IISlogs 下载计数?
- sql - 放置两个查询来触发语句
- arrays - React - Redux,为什么在将新项目添加到状态数组后影响所有状态数组元素
- amazon-web-services - AWS 错误:这些可用区都不包含健康的目标。AWS 负载均衡器中的状态为“停止服务”
- c++ - 第一个数字和第二个数字之间所有能被 4 和 6 整除的整数的总和
- python - 保存代码后无法在 ipython 控制台中输入
- objective-c - 如何在字典中写入属性数组
- python - 转换后的 CoreML 模型的输出与 Keras 不同