excel - 如何更改此 for 循环的列引用
问题描述
我有与此脚本一起使用的虚拟数据:它只是更新我放入工作表 2 的值,并将它们与数组乘法器一起应用于工作表 1 中rIterators
匹配的任何位置。对于这个问题,这些都不是必需的,我只需要知道如何更新我的j
变量引用。
目前是:
For j = 3 To 5
wsA.Cells(fndRow + i, j).Value = rIterator.Offset(, j - 1).Value * multplr(i)
Next j
并且它在两个工作表中都引用了 CE 列,因为这是值对齐的地方。
如果 Sheet2 具有需要在 CE 列中更新的值,但这些列存在于 Sheet1 的 AD-AF 列中,我将如何更改?
其余代码:
Sub UpdateTSRS()
Dim wbk As Workbook
Dim wsA As Worksheet, wsB As Worksheet
Dim rngA As Range, rngB As Range
Dim rIterator As Range
Dim fndRow As Long
Dim multplr As Variant
multplr = Array(1, 1.1, 1.15, 1.2, 1.3)
Set wbk = ThisWorkbook
Set wsA = wbk.Sheets("Sheet1")
Set wsB = wbk.Sheets("Sheet2")
Set rngA = wsA.Range(wsA.Range("A2"), wsA.Range("A2").End(xlDown))
Set rngB = wsB.Range(wsB.Range("A2"), wsB.Range("A2").End(xlDown))
For Each rIterator In rngB
On Error Resume Next
fndRow = Application.Match(rIterator.Value, rngA, 0) + _
rngA.Range("A1").Row - 1
If Err.Number <> 0 Then
Else
For i = 0 To 4
For j = 3 To 5
wsA.Cells(fndRow + i, j).Value = rIterator.Offset(, j - 1).Value * multplr(i)
Next j
Next i
wsA.Range(wsA.Cells(fndRow, 3), wsA.Cells(fndRow, 5)).Resize(5).Interior.Color = RGB(255, 255, 0)
End If
Err.Clear
Next rIterator
End Sub
解决方案
从我的评论中显示代码更改:
'Set wsA = wbk.Sheets("Sheet1")
'Set wsB = wbk.Sheets("Sheet2")
Set wsB = wbk.Sheets("Sheet1")
Set wsA = wbk.Sheets("Sheet2")
你的循环将类似于:
For j = 3 To 5
wsA.Cells(fndRow + i, j).Value = rIterator.Offset(, j +27 - 1).Value * multplr(i) 'i think i got that? destination still C->E but source is AD->AF
Next j
推荐阅读
- python - PySide2 将鼠标事件传递给系统
- ios - 在应用程序中返回bool值的目的是什么(_应用程序:UIApplication,打开url:URL,sourceApplication:String?,注释:Any)
- javascript - 返回异步数据,然后在 Node.js 中同步导出
- regex - 带有连字符的模式的正则表达式
- google-ads-api - 如何查看应用程序中是否设置了谷歌广告?
- azure-sql-database - 如何在 SSMS 中查看 Azure 表数据
- javascript - Vue 应用程序中的逻辑问题是由于相互依赖的变量而导致无限循环
- r - 从闪亮的服务器调用仪表板页面
- android - android oboe - 如何将andio歌曲设置为播放流
- go - 我可以得到一个字段是否已在golang中分配了反射