第1页:由三列组成(状态,费用,版本)
第2页:用作具有两列(公式,版本号)的操作页。
问题:
我想在工作表2的第二栏中设置版本号,并使用VBA代码让公式或按钮执行以下操作:
任何帮助,请抛出公式或使用VBA代码。
致谢
答案 0 :(得分:2)
如果这就是您要实现的全部,并且可以在 Sheet1 中的 [Status] 字段中使用公式,那么您可能要做的就是使用以下公式:
=IF(C2 = 5, "Delivered", "Pending")
这基本上是在查看您的版本列,并检查您的版本号是否为 5 ,然后将文本更改为 Delivered ,否则使用待处理(或您需要的任何内容)。
答案 1 :(得分:0)
我想感谢大家的建议,在搜索了关键代码以知道如何返回特定表中填充的行数之后,我找到了解决方案,现在可以执行我的逻辑了。以下是我针对上述问题的解决方案。
步骤:
创建将按顺序执行以下操作的功能:
从表1 Sheet1中获取列号,其中标题名称= [固定于版本]
从表1 Sheet1中获取列号,其中标题名称= [Item Progress]
选择工作表2以获得插入到单元格B1中的值
从Sheet2内部的单元格获取插入值
设置Counter值= 1以从表1表1中的标题之后的第一行开始循环
在循环时打开,并在计数器<=总行数执行以下操作时设置条件
使用Cells方法开始在表中逐行移动:cells(counter,Get_Version_Item_Column)'在cells方法中,我们设置了[Row] =>计数器变量,该变量以值= 1,[Column]开头=> Get_Version_Item_Column'
以与步骤7中所示相同的方式获取要放入条件中的第二列的值
如果没有其他条件,则开始设置条件
如果Get_Fixed_In_Version_Value = Get_Version_Inserted_Value和Get_Item_Progress_Value =“ Approved”,则'IF CORRECT NUMBER'做一些示例[替换此行中的值,此列,此单元格的值为=“”]
其他'进行其他操作
将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
希望这会有所帮助。
致谢