不知何故,我陷入了需要在 excel VBA 中撰寫代碼的情況。不幸的是,這不是我的專長,現在我被困住了。
我試圖檢查 Colom B 中的單元格中的值是否與 Colom B 中另一行的單元格相同,Y 的位置較低/較高。Y 是單元格“A8”中的值。如果值相同,則同一行的 Colom P 中的值必須與同一行的 Colom R 中的值相同。該行的 ELSE Colom Q 必須獲得與同一行的 Colom R 中相同的值。(在下面的示意圖中,Y=2,所以 coom B1 檢查 B3 下 2 個位置是相同的所以 R1 中的資料也應該在 P1 中。繼續相同的想法 B4 與 B6 相比沒有相同的值所以 Q4 應該有與 R4 相同的值)
ColomA ColomB ColomP ColomQ ColomR
1 x
2 x
2 1 x
2 x
30 x
40 x
50 x
60 x
ColomA ColomB ColomP ColomQ ColomR
1 x x
2 x x
2 1 x x
2 x x
30 x x
40 x x
50 x x
60 x x
(輸入(頂部)和所需結果(底部)的表示)
我嘗試了很多東西,但沒有得到很遠..最后一次我嘗試在下面看到。
For iRow = Range("B3:B2502").Rows.Count To 1 Step -1
If Cells(iRow 2, 2).Value = Cells(iRow Y, 2) Then
Cells(iRow 2, 15).Value = Cells(iRow 2, 17)
Else
Cells(iRow 2, 16).Value = Cells(iRow 2, 17)
End If
Next
End Sub
和范圍的一些變化,但是很明顯,這不起作用..
我真的很感激任何建議。
干杯,
uj5u.com熱心網友回復:
- 將此粘貼到單元格中,
P1然后將公式復制到行中:
=IF(OR(IF(ISERROR(B1=OFFSET(B1,$A$8,0)),False,B1=OFFSET(B1,$A$8,0)),IF(ISERROR(B1=OFFSET(B1,-$A$8,0)),False,B1=OFFSET(B1,-$A$8,0))),R1,"")
- 將此粘貼到單元格中,
Q1然后將公式復制到行中:
=IF(OR(IF(ISERROR(B1<>OFFSET(B1,$A$8,0)),False,B1<>OFFSET(B1,$A$8,0)),IF(ISERROR(B1<>OFFSET(B1,-$A$8,0)),False,B1<>OFFSET(B1,-$A$8,0))),R1,"")
uj5u.com熱心網友回復:
如果我將您的代碼理解為所詢問內容的參考(敘述性語言讓我感到困惑),我認為您正在嘗試做這樣的事情(未經測驗的模型):
With Sheets(1)
Dim comparativeValue as Long
comparativeValue = .cells(8,1).value
Dim lastRow as Long
lastRow = .cells(.rows.count,2).end(xlup).row
Dim iterator as Long
For iterator = 2 to lastRow step 1
Dim pasteColumn as Long
Select Case True
Case comparativeValue <= .Cells(i,2).Value
pasteColumn = 16
Case comparativeValue > .Cells(i,2).Value
pasteColumn = 17
End Select
.cells(i,pasteColumn).value = .cells(i,18).value
Next iterator
End With
這將您comparativeValue在 A8 中的值與 B 列中的每個值進行比較,并基于 ">=" 或 "<"pasteColumnn將接收來自 R 列的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/339877.html
