vba - 括号阻止函数运行

标签 vba variables brackets

由于括号所在的位置,我很难让我的函数识别该过程。

以下代码不起作用。

功能

Public Function KonKatenate(rIN As range) As String
Dim r As range
For Each r In rIN
KonKatenate = Replace(KonKatenate & r.Text, ".", "")
Next r
End Function

程序

Sub LoopThroughUntilBlanks()

Dim xrg As range

Cells(3, 951).Select
' Set Do loop to stop when two consecutive empty cells are reached.
Application.ScreenUpdating = False
i = 3
Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(0, -2).Value)
Cells(i, 951).Value = KonKatenate(range("AJE" & i & ":AJG" & i & ")"))
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
Application.ScreenUpdating = False
End Sub

当我完全删除括号并使用例如静态数字时,这有效:

Cells(i, 951).Value = KonKatenate(range("AJE3:AJG3"))

但是我需要 3 作为变量 i 以便循环向下超越行

非常需要建议

最佳答案

您的 KonKatenate 函数在循环范围时不断覆盖其自身的结果。您需要不断地将新的字符串连接到结果上。您的原始文件中没有分隔符,但我添加了一种简单的方法来包含分隔符。

Public Function KonKatenate(rIN As range) As String
    Dim r As range, d as string

    d = ""

    For Each r In rIN
        KonKatenate = KonKatenate & d & Replace(r.Text, ".", "")
    Next r

    KonKatenate = mid(KonKatenate, len(d)+1)

End Function

您的 LoopThroughUntilBlanks 子过程应该使用它声明的变量并声明它使用的变量。 For ... Next 循环可能更合适。

Sub LoopThroughUntilBlanks()
    dim lr as long, i as long

    Application.ScreenUpdating = False

    with activesheet    '<~~ would be better as a defined worksheet
        lr = application.max(.cells(.rows.coun, "AJO").end(xlup).row, _
                             .cells(.rows.coun, "AJO").Offset(0, -2).end(xlup).row)
        for i=3 to lr
            .Cells(i, "AJO").Value = KonKatenate(.range(.cells(i, "AJE"), .cells(i, "AJG")))
        next i
    end with

    Application.ScreenUpdating = False
End Sub

关于vba - 括号阻止函数运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50884095/

相关文章:

正则表达式:删除里面有大括号的 <p></p> 段落

vba - 过滤范围内的条件计数

excel - 如何使用 VBA 删除 Excel 中的零长度字符串?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

java - 通过循环动态赋值 - Android - 通过java编程

Java继承(if中的局部变量/boolean 值)

java - 如果我在 Java 中省略花括号可以吗?

javascript - 这个括号序列语法在 JS 中叫什么?

excel - vba - Excel 2010。局部变量未在我的函数中初始化

vba - 这个 Visual Basic 代码有什么作用?微软 word 宏