excel - 使用 VBA 我的代码第一次没有执行并且条件为“真”
问题描述
当 2 个工作表上的 ID 匹配时,从第二个电子表格(GL 接口)复制 2 列数据。我单步执行了代码并执行了捕获值并打印到目的地的代码,除了 G2 a& H2 中没有打印任何内容。有些值应该打印但不打印。每隔一行打印一次。
为什么第一次执行不打印值?实际上,这些值确实在第二次执行后出现了一次。
但是,当我将目标列重置为空白并再次尝试时,第一次评估 true 的值不会显示在它们的目标列中。
为什么?
Sub Import_Data()
Dim lastRw1, lastRw2, nxtRw, m, lastColumn, rowCol
'Determine last row with data, Sheet1
lastRw1 = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
'Determine last row with data, Import
lastRw2 = Sheets("GL Interfaces").Range("A" & Rows.Count).End(xlUp).Row
'Last Column
With ActiveSheet
lastColumn = .Range("A1").SpecialCells(xlCellTypeLastCell).Column
End With
MsgBox lastColumn '=> returns 36
'Heading
Range("A1:H1").HorizontalAlignment = xlCenter
Range("A1:H1").HorizontalAlignment = xlCenter
Range("A1:H1").Interior.Color = RGB(169, 208, 142)
Range("A1:H7172").Font.Color = RGB(0, 0, 0)
'Body
Range("A1:H7172").HorizontalAlignment = xlCenter
Range("A1:H7172").Font.Color = RGB(0, 0, 0)
'Loop through Sheet1, Column A
For nxtRw = 2 To lastRw2
'Search Sheet1 Column A for value from GL Interfaces
With Sheets("Sheet1").Range("A2:A" & lastRw1)
Set m = .Find(Sheets("GL Interfaces").Range("A" & nxtRw), LookIn:=xlValues, lookat:=xlWhole)
'Copy GL Interfaces row if match is found
If Not m Is Nothing Then
Sheets("GL Interfaces").Range("E" & nxtRw & ":F" & nxtRw).Copy _
Destination:=Sheets("Sheet1").Range("G" & m.Row)
End If
End With
Next
End Sub
解决方案
推荐阅读
- c# - 如何为存储过程的结果更新实体框架自动生成的代码
- java - 如何为 JAXM 客户端获取和设置“消息传递提供程序”以调用异步 SOAP API?
- python - 在同级目录中进行相对导入时遇到问题
- c# - Kendo.Filterable 不包含“操作员”的定义
- ios - 快速访问字典键的值
- perl - 从一种日期时间格式转换为另一种日期时间格式
- javascript - 如果对象属性相同,则将数组中的两个对象合并为一个对象,并将唯一属性转换为数组
- javascript - 表 tbody 未正确附加
- linux - 如何处理重复的 .so 文件?
- javascript - Wordpress Ajax 表单 CSV 价格请求