簡體   English   中英

VBA如何根據同一行中其他兩個單元格的內容編輯單元格內容

[英]VBA how do I edit cell contents based on contents of two other cells in same row

我需要幫助創建一個宏來清理包含產品銷售信息的 csv 表,包括需要使用的運輸方式。 我們大約有 10 種產品無法通過我們通常的運輸方式發送,我需要覆蓋分配給包含這些產品的訂單的運輸方式。

  • A列是訂單號
  • B列是購買的產品
  • C列是運輸方式

如果有人在一個訂單中購買多個產品,則訂單號在下一行重復,運輸方式僅顯示在具有該訂單號的第一行,並且在同一訂單中購買的每個連續產品只添加一個新行,其中包含產品名稱B欄

我需要使用 VBA 來檢查 B 列中 10 個左右的特定產品的列表,並更新整個訂單的運輸方式(C 列中最上面的單元格在單元格 A 中具有相同的值),如果它包含以下之一這10款產品。

我認為它需要做這樣的事情:

  1. 查看 B 列並搜索一串文本
  2. 如果單元格與搜索條件匹配,則查看同一行 A 列中的值
  3. 在 A 列中找到此值的第一個實例
  4. 用新的運輸方式替換同一行 B 列中的內容

我會在循環中需要它,以便它為電子表格中 B 列中搜索字符串的每個實例執行此操作。

我希望這個問題很清楚,我已經搜索過,但找不到這個問題的答案。 歡迎任何幫助或替代修復。

嘗試下面的代碼,給定設置並得到以下屏幕截圖:

Sub test()

Dim pRange As Range
Dim nShip As Range

Set pRange = Range("E2")
pRange.Select

While ActiveCell.Value <> ""

Range("B2").Select

While ActiveCell.Value <> ""

If ActiveCell.Offset(0, -1).Value <> ActiveCell.Offset(-1, -1).Value Then

Set nShip = ActiveCell.Offset(0, 1)

End If

If ActiveCell.Value = pRange.Value Then

nShip.Value = pRange.Offset(0, 1).Value
ActiveCell.Offset(1, 0).Select

Else

ActiveCell.Offset(1, 0).Select

End If

Wend

Set pRange = pRange.Offset(1, 0)
pRange.Select

Wend

End Sub

首發名單:

在此處輸入圖片說明

宏后的結果:

在此處輸入圖片說明

暫無
暫無

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

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