Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“怎么做?”;如果单元格包含“;在VBA中_Vba_Excel - Fatal编程技术网

“怎么做?”;如果单元格包含“;在VBA中

“怎么做?”;如果单元格包含“;在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”时显示

我正在寻找一个代码,当一个单元格包含数字“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单元格显示不同的数字时),请将答案标记为已接受。谢谢!