gpt4 book ai didi

vba - 使用 WorksheetFunction 在嵌套循环中键入不匹配

转载 作者:行者123 更新时间:2023-12-04 20:40:32 30 4
gpt4 key购买 nike

Sub checkMe()
Dim lastRow As Long
Dim cell As Range



lastRow = Range("A" & Rows.Count).End(xlUp).Row

For Each cell In Range("B1:B" & lastRow) 'dynamically go through each row in the range
For a_counter = 2001 To 2015 ' for each row, cycle through each year until 2015
j = a_counter
b = cell.offset(0, 6).Value 'value for vlookup
a = Application.VLookup(b, Sheet2.Range("A2:N42"), (j - 2000 + 2), False) ' look up each value in offset(0,6) in another sheet
If cell.Value = "DUB" And cell.offset(0, 1).Value <= "2001" And cell.offset(0, 2).Value = "OSLR" Then cell.offset(0, j + 12 - 2000).Value = cell.offset(0, 7).Value * a 'only apply when the conditions are met


Next a_counter


Next

End Sub

顺序应该稍微改变一下,这样条件就在内部循环之前以帮助加快速度,否则我认为这应该可行。 cell.offset(0,6) 的值是我需要为 vlookups 的每一行查找的值。如果我输入“b”所在的值,则此代码有效,但是我需要查找该值以随每一行更改。目前它只适用于第一排并停止。现在我得到一个不匹配的错误。

最佳答案

让我们做一些数学运算。

For a_counter = 2001 To 2015

a_counter 将排序 15 个值;例如2001 ► 包括 2015 年。
Sheet2.Range("A2:N42")

共14列;例如A 列 ► N 列(含)。
j = a_counter
..., (j - 2000 + 2), ...

您要求从 3 ► 17 的 15 个不同列返回。

但是 A:N 有 14 列,所以当 时会出错(类型不匹配) a_counter = 2013,因为没有第 15 列。

关于vba - 使用 WorksheetFunction 在嵌套循环中键入不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532802/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com