arrays - 数组分割和提取

标签 arrays vba excel

我试图遍历单元格中的每个字符来确定某个单词是否带有下划线和斜体,但到目前为止循环运行并卡住。如何复制和移动斜体和下划线的单词?这是我到目前为止所拥有的。我问了一个新问题,因为我在这个问题上还不够清楚。可以通过 Array split and extract vba excel 访问。 .

For Each j In ActiveSheet.Range("C1:C105")
        v = Trim(j.Value)
        If Len(v) > 0 Then
            v = Replace(v, vbLf, " ")

            Do While InStr(v, "  ") > 0
                v = Replace(v, "  ", " ")
            Loop

            arr = Split(v, " ")

            For Z = LBound(arr) To UBound(arr)
            e = arr(Z)

                For i = 1 To Len(v)
                    If j.Characters(i, 1).Font.Italic = True And j.Characters(i, 1).Font.Underline = True Then
                        j.Value.Copy


                    End If
                Next i
            Next Z
        End If
   Next j​

最佳答案

以下代码将 Debug.Print 任何给定单元格中带下划线且格式为斜体的所有单词:

Option Explicit

Public Sub tmpSO()

Dim i As Long
Dim j As Range
Dim StartPoint As Long
Dim InItalicUnderlinedWord As Boolean

For Each j In ThisWorkbook.Worksheets(1).Range("C1:C105")
    If Len(j.Value2) > 0 Then
        For i = 1 To Len(j.Value2)
            If j.Characters(i, 1).Font.Italic And j.Characters(i, 1).Font.Underline Then
                If InItalicUnderlinedWord = False Then
                    StartPoint = i
                    InItalicUnderlinedWord = True
                End If
            Else
                If InItalicUnderlinedWord = True Then
                    Debug.Print Mid(j.Value2, StartPoint, i - StartPoint)
                    InItalicUnderlinedWord = False
                End If
            End If
            If InItalicUnderlinedWord = True And i = Len(j.Value2) Then
                Debug.Print Mid(j.Value2, StartPoint, i - StartPoint + 1)
                InItalicUnderlinedWord = False
            End If
        Next i
    End If
Next j

End Sub

Debug.Print 将把斜体下划线 单词输出到VBE 的直接窗口中。如果您希望这些词出现在其他地方,那么您必须在两个(!)位置调整代码:

  1. 一旦进入以 InItalicUnderlinedWord 开头的部分,即可在单元格内的任意位置进行查找
  2. 在以 If InItalicUnderlinedWord = True And i = Len(j.Value2) Then 开头的部分中,对于单元格中最后字符也是 下划线斜体

如果您有任何疑问或问题,请告诉我。

关于arrays - 数组分割和提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38725078/

相关文章:

javascript - 条件语句中的 for 循环未定义数组索引

vba - 试图获得两个日期,上个月的 24 日和本月的 23 日

excel - 检查一列是否有内容而下一列没有内容

javascript - ActiveXObject 行数计数器

javascript - 寻找更多值(value)的索引

javascript - JavaScript 引擎如何将数组对象的类型更改为字符串

Excel VBA 宏 : Copying cells by reference

excel - 如何检查文件是否为空?

Excel:从日期转换为时间范围

javascript - 如何缩短这个 JavaScript if 语句?