“怎么做?”;如果单元格包含“;在VBA中
我正在寻找一个代码,当一个单元格包含数字“1”时,执行一个语句 我一直在使用在线找到的代码“怎么做?”;如果单元格包含“;在VBA中,vba,excel,Vba,Excel,我正在寻找一个代码,当一个单元格包含数字“1”时,执行一个语句 我一直在使用在线找到的代码 Dim celltxt As String celltxt = ActiveSheet.Range("C6").Text If InStr(1, celltxt, "1") Then MsgBox ("Yes") Else MsgBox ("no") End If 但是,如果它只读取单元格C6,则此项工作正常。如何设置它,使其读取C2:C5000范围内的单元格。就像我的D2单元在C2单元显示“1”时显示
Dim celltxt As String
celltxt = ActiveSheet.Range("C6").Text
If InStr(1, celltxt, "1") Then
MsgBox ("Yes")
Else
MsgBox ("no")
End If
但是,如果它只读取单元格C6,则此项工作正常。如何设置它,使其读取C2:C5000范围内的单元格。就像我的D2单元在C2单元显示“1”时显示“是”,D3单元在C3单元显示不同的数字?时显示“否”
谢谢你的大力帮助
Horo您可以通过以下方式避免循环:
Columns(3).SpecialCells(XlCellType.xlCellTypeConstants, xlNumbers).Offset(, 1).FormulaR1C1 = "=IF(RC[-1]=1,""yes"",""no"")"
如果你想摆脱公式:
With Columns(3).SpecialCells(XlCellType.xlCellTypeConstants, xlNumbers).Offset(, 1)
.FormulaR1C1 = "=IF(RC[-1]=1,""yes"",""no"")"
.value = .value
End With
可以通过以下方式避免循环:
Columns(3).SpecialCells(XlCellType.xlCellTypeConstants, xlNumbers).Offset(, 1).FormulaR1C1 = "=IF(RC[-1]=1,""yes"",""no"")"
如果你想摆脱公式:
With Columns(3).SpecialCells(XlCellType.xlCellTypeConstants, xlNumbers).Offset(, 1)
.FormulaR1C1 = "=IF(RC[-1]=1,""yes"",""no"")"
.value = .value
End With
使用循环。您提供的代码仅指定一个单元格。您可能希望在一系列单元格中循环。您也可以考虑包含条件而不是代码的相对公式。您提供的代码仅指定一个单元格。您可能希望在一系列单元格中循环。你也可以考虑一个包含有条件而不是代码的相对公式。我试图整合你的公式VBA,它不起作用,我不太清楚为什么。我试着把你的公式整合到我的VBA中,它不起作用,我不太清楚为什么。我的代码如下。带第(3)列。特殊单元格(XlCellType.xlCellTypeConstants,xlNumbers)。偏移量(,1)。公式1c1=“=如果(RC[-1]=1,则“rng=mRng Sheet1.Range”(“A”&rng.Row&“:N”&rng.Row).Interior.Color=5287936。我试图通过将其高亮显示为绿色来临时创建它,但无法工作。怎么了?您必须在VBA中键入它,就像我写的那样。请告诉我。嗨,我希望它的方式是,如果C列有1,则对应的N列中的行将突出显示。而不是“是”或“否”。希望不会让您感到困惑。感谢所有的帮助。这与您在帖子中提出的问题完全不同,您需要“经典”循环。顺便说一句,如果我解决了您的原始问题(“就像我的D2单元格在C2单元格显示“1”时显示“是”,D3单元格显示“否”)“当单元格C3显示不同的数字时”)然后,请将答案标记为已接受。谢谢!我试图将您的公式集成到我的vba中,但不起作用,我不太确定原因。我试图将您的公式集成到我的vba中,但不起作用,我不太确定原因。我的代码如下。带第(3)列。特殊单元格(XlCellType.xlCellTypeConstants,xlNumbers)。偏移量(,1)。公式1c1=“=如果(RC[-1]=1,则“rng=mRng Sheet1.Range”(“A”&rng.Row&“:N”&rng.Row).Interior.Color=5287936。我试图通过将其高亮显示为绿色来临时创建它,但无法工作。怎么了?您必须在VBA中键入它,就像我写的那样。请告诉我。嗨,我希望它的方式是,如果C列有1,则对应的N列中的行将突出显示。而不是“是”或“否”。希望不会让您感到困惑。感谢所有的帮助。这与您在帖子中提出的问题完全不同,您需要“经典”循环。顺便说一句,如果我解决了您的原始问题(“就像我的D2单元格在C2单元格显示“1”时显示“是”,D3单元格显示“否”)当C3单元格显示不同的数字时),请将答案标记为已接受。谢谢!