簡體   English   中英

如果第 7 列中的一個單元格等於另一個單元格中的值,則更改為另一個單元格中的值

[英]If a cell in Column 7 equals the value in another cell change to the value in another cell

下面的代碼更改第 7 列中任何與 AF14 中的值相等的單元格的值,並將其更改為 AF15 中的值。 我想添加更多標准,比如如果是 AF16 則更改為 A17,如果是 AF17 則更改為 AF18 等等。

提前致謝

Private Sub macro13()

Dim i As Integer
Dim WK As Worksheet
Dim rg As Range

Set WK = Sheet4
For i = Cells(Rows.Count, 7).End(xlUp).Row To 1 Step -1
    If Cells(i, 7) = rg Then Cells(i, 7).Value = Range("AF15").Value
Next i

End Sub

嘗試這樣的事情:


Private Sub macro13()

Dim i As Integer
Dim WK As Worksheet
Dim rg As Range
Dim cell_arr(1 To 5, 1 To 2) As String

Set WK = ActiveSheet

' cell_arr(x,1) --> cell_arr(x,2)
cell_arr(1, 1) = "AF14": cell_arr(1, 2) = "AF15"
cell_arr(2, 1) = "AF16": cell_arr(2, 2) = "AF17"
cell_arr(3, 1) = "AF18": cell_arr(3, 2) = "AF19"
cell_arr(4, 1) = "AF20": cell_arr(4, 2) = "AF21"
cell_arr(5, 1) = "AF22": cell_arr(5, 2) = "AF23"

For k = 1 To UBound(cell_arr, 1)
    For i = Cells(Rows.Count, 7).End(xlUp).Row To 1 Step -1
    
        If Cells(i, 7) = Range(cell_arr(k, 1)) Then
                Cells(i, 7).Value = Range(cell_arr(k, 2)).Value
        End If
    
    Next i
Next k

End Sub

您的問題並不完全清楚,我想知道兩件事:

  • 為什么要在宏中執行此操作? 您是否希望僅在某個事件(如單擊按鈕)時填寫該值?
  • 如果您不需要宏,您可以使用一組嵌套的IF(...)子句來執行此操作,或者您可以選擇HLookup() (在行內某處查找值)和OffSet(-1,0)的組合OffSet(-1,0) (一旦你找到一個單元格,在同一行但在左邊的列中取一個)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM