gpt4 book ai didi

mysql - 如何将相同的 IF 语句应用于同一列中的多个单元格? (Excel)

转载 作者:行者123 更新时间:2023-11-29 11:35:56 26 4
gpt4 key购买 nike

我目前正在开发一个宏来创建不同产品和工作选项代码的矩阵。我需要的大部分信息已经从我们运行的订单创建系统中导出。然而,不导出的内容之一是大约 150 个选项代码的描述。每个选项代码都附带一个在单独的工作表中概述的描述,因此我决定使用 IF 语句将描述编程到代码中,而不必总是引用另一个工作表。我的目标是编写一个程序来查看列中的每个选项代码,然后在相邻列中插入该选项代码的匹配描述。

例如:我的程序会说:如果事件单元格显示“AAAAA”,则选择水平偏移一个单位的单元格并插入“选项1”。否则,如果显示“BBBBB”,则插入另一个选项描述。

由于我们的产品订单总是在变化,而且我需要每周提供大约 3000 种产品的信息,我需要知道如何输入一次条件,然后插入一段代码来告诉程序携带它列中的下 (X) 个选项,或者只要单元格中有数据。

我很确定循环可以解决我的问题,但我还没有找到满足我要求的循环脚本。

这是我到目前为止所拥有的:

Private Sub Option_Matrix_2()
'Enters data for Option code Description into worksheet
Range("G4").Select
If ActiveCell.FormulaR1C1 = "AAAA" Then
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ActiveCell.FormulaR1C1 = "Description 1"



ElseIf ActiveCell.FormulaR1C1 = "CCCCC" Then
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ActiveCell.FormulaR1C1 = "Description 2"


ElseIf ActiveCell.FormulaR1C1 = "EEEEE" Then
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ActiveCell.FormulaR1C1 = "Description 3"

Else
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ActiveCell.FormulaR1C1 = ""

End If

由于我有 3000 多种产品和 150 种不同的选项,因此我需要知道需要插入什么来告诉宏为包含数据的列中的每个单元格运行代码。在这种情况下,它将是(“G4:G3000”)

如果需要任何其他信息,请告诉我,我很乐意尽我所能提供帮助

最佳答案

我会按照@Jeeped 在评论中建议的方式进行操作,但如果你真的想在 vba 中进行操作,那么:

Private Sub Option_Matrix_2()
Dim cl As Range
Dim ws As Worksheet

Set ws = Sheets("Sheet1") ' change to your sheet
'Enters data for Option code Description into worksheet
For Each cl In ws.Range("G4:G3000")
If cl.FormulaR1C1 = "AAAA" Then
cl.Offset(, 1).FormulaR1C1 = "Description 1"
ElseIf cl.FormulaR1C1 = "CCCCC" Then
cl.Offset(, 1).FormulaR1C1 = "Description 2"
ElseIf cl.FormulaR1C1 = "EEEEE" Then
cl.Offset(, 1).FormulaR1C1 = "Description 3"
Else
cl.Offset(, 1).FormulaR1C1 = ""
End If
Next cl
End Sub

或者更好的是使用 Select Case:

Private Sub Option_Matrix_2()
Dim cl As Range
Dim ws As Worksheet

Set ws = Sheets("Sheet1") ' change to your sheet
'Enters data for Option code Description into worksheet
For Each cl In ws.Range("G4:G3000")
Select Case cl
Case "AAAA": cl.Offset(, 1) = "Description 1"
Case "CCCC": cl.Offset(, 1) = "Description 2"
Case "EEEE": cl.Offset(, 1) = "Description 3"
Case Else: cl.Offset(, 1) = ""
End Select
Next cl
End Sub

关于mysql - 如何将相同的 IF 语句应用于同一列中的多个单元格? (Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com