【问题标题】:VBA check cell column for letters and displays a word in corresponding cellVBA检查单元格列的字母并在相应的单元格中显示一个单词
【发布时间】:2019-03-01 03:46:36
【问题描述】:
 Option Explicit

 Sub PartNumberIdentifier()

在这里定义变量

 Dim cell As Range
 Dim celltxt As String

我的 Excel 表中有一个名为 firstDigit 的范围,它在一列中显示 256 行。我想检查该列是否包含字母

 For Each cell In Range("firstDigit")
 If cell >= "A" And cell <= "Z" Then
 ActiveSheet.Range("D4:D259") = "Ours"
 Else
 ActiveSheet.Range("D4:D259") = "NO"

执行的时候,不管firstDigit对应的列是不是字母,代码一直往下写Ours到D4:D259。

 End If
 Next
 End Sub

【问题讨论】:

  • firstDigit 在哪一列?您需要写入一个单元格,而不是整个列。您的列值当前显示上次测试的结果,因为每个循环都会覆盖上一个循环值
  • firstDigit 在 B4:B259 列中,我希望每个 B 单元格中是否为字母的文本发布在 D 列中。
  • 哇,效果太棒了!还有一件事。既然你用这种方式测试过。我怎样才能使您所说的包含非 alpha 字符的单元格变为黄色?当我这样做时,它会为 firstDigit 中的框着色
  • 这改变了我已经尝试过的 firstDigit 中框的颜色。我希望 D 列中的框改为黄色。我该怎么做?
  • 请将您的 cmets 放在我放置我的解决方案的下方 - 我留下评论说如何做到这一点,但也会更新解决方案

标签: excel vba


【解决方案1】:

试试……

Sub PartNumber()

Dim xCell As Range

For Each xCell In Range("firstDigit")
    If xCell Like WorksheetFunction.Rept("[a-zA-Z]", Len(xCell)) Then
        xCell.Offset(0, 2) = "Alpha Only"
    Else
        xCell.Offset(0, 2) = "Contains non Alpha Char"
        xCell.Offset(0, 2).Interior.Color = vbYellow   'To color the cell that has string
    End If
Next xCell

End Sub

【讨论】:

  • 更新为Column B 中的单元格颜色编码,当字符串不是严格的 alpha 时。如果您想在Column D 中对单元格进行颜色编码,只需使用Offset 就像上面的行
  • 更新为 Column D 中的颜色单元,而不是 Column B
  • 非常感谢您更新代码以在不正确的框中显示颜色
  • 大声笑我认为这真的很讽刺,但我猜你的意思是“在正确的盒子里
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
  • 1970-01-01
相关资源
最近更新 更多