在Microsoft Visual Basic中,我的代码不会排除任何内容



要将此放在上下文中,我对编程非常陌生。我对Python只有基本的了解,本周之前从未接触过VBA,也很少使用excel。我知道我吃得太多了,但我正在尽力学习。在我的excel电子表格中,我有一列E,在每个单元格中,我都有一个R、P或S的随机字符串;R〃;并在单独的单元格中打印下一个字符。我的目标是让E列中的每个单元格在N列中都有一个相关单元格。每当程序运行时,我的电子表格中都不会发生任何事情。

Dim j As Integer
Dim i As Integer
Dim nextr As String
Sub Rvalue(i As Integer, nextr As String, j As Integer, cell As Variant)
For Each cell In Range("E2:E87")
For i = 1 To Len(Text)
If Mid((E2), i, 1) = "R" Then
j = i + 1
nextr = nextr & Mid((E2), j, 1)
End If
ActiveCell.Value = nextr
Next i
Next cell
End Sub

字符后的字符

  • 使用当前设置,它将循环通过一列范围E2:E87的单元格,并从每个单元格中提取每个找到的Rr的后续字符,并将其返回到列N的同一行中,例如,如果列E中的单元格包含rAReRIr,它将返回列N中的AeI
Option Explicit
Sub CharsAfterChar()
Dim ws As Worksheet: Set ws = ActiveSheet
PopulateCharsAfterChar "R", ws.Range("E2:E87"), "N"
End Sub
Sub PopulateCharsAfterChar( _
ByVal Char As String, _
ByVal ColumnRange As Range, _
ByVal Col As String)

Dim cell As Range
Dim n As Long
Dim S As String
Dim Chars As String

For Each cell In ColumnRange.Columns(1).Cells
S = CStr(cell.Value)
For n = 1 To Len(S) - 1
If StrComp(Mid(S, n, 1), Char, vbTextCompare) = 0 Then
Chars = Chars & Mid(S, n + 1, 1)
End If
Next n
cell.EntireRow.Columns(Col).Value = Chars
Chars = ""
Next cell
End Sub

最新更新