[英]How to set value in a cell based on another cell value from another column using formula or VBA?
如果僅此而已,並且可以在Sheet1的[Status]字段中使用公式,則可能要做的就是使用以下公式:
=IF(C2 = 5, "Delivered", "Pending")
基本上,這是在查看您的“ 版本”列,並檢查您的版本號是否為5 ,然后將文本更改為“ 已交付” ,否則使用“ 待定” (或您需要的任何值)。
我想感謝大家的建議,在搜索了關鍵代碼以知道如何返回特定表中填充的行數之后,我找到了解決方案,現在我可以執行我的邏輯了。 以下是我針對上述問題的解決方案。
腳步:
創建一個將按順序執行以下操作的函數:
從表1 Sheet1中獲取列號,其中表頭名稱= [固定於版本]
從表1 Sheet1中獲取列號,其中標題名稱= [Item Progress]
選擇工作表2以獲取插入到單元格B1中的值
從Sheet2內部的單元格獲取插入值
設置Counter value = 1以從表1表1中的標題之后的第一行開始循環
在while循環中打開,並在計數器<=總行數執行以下操作時設置條件
使用Cells方法開始在表中逐行移動:Cells(counter,Get_Version_Item_Column)'在cells方法中,我們設置[Row] =>計數器變量,該變量以值= 1開頭,[Column] => Get_Version_Item_Column'
用步驟7中所示的相同方式獲取要放入條件中的第二列的值
如果其他條件,則開始設置條件usinf
如果Get_Fixed_In_Version_Value = Get_Version_Inserted_Value和Get_Item_Progress_Value =“已批准”,則'IF正確數字'執行某些操作示例[替換此行中的值,此列,此單元格的值為=“”]
別做別的
將1加到計數器
關閉While循環
代碼解決方案:
Public Get_Version_Inserted_Value As String
Public Get_Version_Item_Column As Integer
Public Get_Fixed_In_Version_Value As String
Public Get_Item_Progress_Column As Integer
Public Get_Item_Progress_Value As String
Public QATotal_Items_Row As Integer
Public counter As Integer
Function Change_Version_Item_Progress() As String
Get_Version_Inserted_Value = ThisWorkbook.Worksheets("Sheet2").Range("B1").Value2
Get_Version_Item_Column = Application.Match("Fixed in Version", Sheets("Sheet1").Rows(1), 0)
Get_Item_Progress_Column = Application.Match("Item Progress", Sheets("Sheet1").Rows(1), 0)
Sheets(Sheet1).Select
QATotal_Items_Row = WorksheetFunction.CountA(Range("B:B")) - 1
counter = 1
While counter <= QATotal_Items_Row
Get_Fixed_In_Version_Value = ThisWorkbook.Worksheets("Sheet1").Range("Table1").Cells(counter, Get_Version_Item_Column).Value2
Get_Item_Progress_Value = ThisWorkbook.Worksheets("Sheet1").Range("Table1").Cells(counter, Get_Item_Progress_Column).Value2
If Get_Fixed_In_Version_Value = Get_Version_Inserted_Value And Get_Item_Progress_Value = "Approved" Then
Get_Item_Progress_Value = ThisWorkbook.Worksheets("Sheet1").Range("Table1").Cells(counter, Get_Item_Progress_Column).Value = "Delivered"
Else
Get_Item_Progress_Value = ThisWorkbook.Worksheets("Sheet1").Range("Table1").Cells(counter, Get_Item_Progress_Column).Value = Get_Item_Progress_Value
End If
counter = counter + 1
Wend
End Function
希望它會有所幫助。
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.