嘗試在 VB 中將多個字串連接到一個單元格時出現 Sub 或 Function undefined 錯誤

嘗試在 VB 中將多個字串連接到一個單元格時出現 Sub 或 Function undefined 錯誤

我今天在工作中試著製作一個快速工具來自動化工作中的一些任務,但遇到了 Sun 或 Function 錯誤的問題。我是 VB 的絕對新手,不熟悉文法和/或語言細節。請你幫助我好嗎?關於我想要做什麼的詳細資訊:基本上,我有多個群組(每組中只有 4 個單元格),我試圖將它們複製到單一單元格中。像這樣:

群組 1: 儲存格 1 儲存格 2 儲存格 3 儲存格 4

第二組: . 。 。這些組中的每一組都需要複製到單獨的單元格中。

這是代碼:

Public Sub GlobalConcatenation()
    Dim sourcerange As Range
    Dim gbegin As Integer
    Dim gend As Integer
    gbegin = 2
    gend = 5
    sourcerange = Sheets("raw_LSToolData").Range(Cells(2, gbegin), Cells(2, gend))
    Dim i As Integer
    For i = 2 To 50
        callConcatinateAllCellValuesInRange (sourcerange)

        sourcerange = Sheets("raw_LSToolData").Range(Cells(2, gbegin + 4), Cells(2, gend + 4))
End Sub
Function ConcatinateAllCellValuesInRange(sourcerange As Excel.Range) As String
    Dim finalValue As String

    Dim cell As Excel.Range

    For Each cell In sourcerange.Cells
        finalValue = finalValue + CStr(cell.Value)
    Next cell

    ConcatinateAllCellValuesInRange = finalValue
End Function

編輯:我覺得我還需要指定問題出現在 GlobalConcatenation() 函數中,每當我收到錯誤時,「sourcerange」就會被反白。

編輯:更新了程式碼 - 修復了拼字錯誤

答案1

這是由於該行的拼字錯誤gbeging:-

錯誤的一個:-

sourcerange = Sheets("raw_LSToolData").Range(Cells(2, gbeging), Cells(2, gend))

sourcerange = Sheets("raw_LSToolData").Range(Cells(2, gbeging + 4), Cells(2, gend + 4))

正確之一:-

sourcerange = Sheets("raw_LSToolData").Range(Cells(2, gbegin), Cells(2, gend))

sourcerange = Sheets("raw_LSToolData").Range(Cells(2, gbegin + 4), Cells(2, gend + 4))

答案2

錯誤最可能的原因是對行中單元格的不合格引用,例如

sourcerange = Sheets("raw_LSToolData").Range(Cells(2, gbegin), Cells(2, gend))

Cells(2, gbegin)指活動工作表上的儲存格。如果這不是raw_LSToolData錯誤將會導致

正確的代碼是

sourcerange = Sheets("raw_LSToolData").Range(Sheets("raw_LSToolData").Cells(2, gbegin), Sheets("raw_LSToolData").Cells(2, gend))

更好的方法是

with Sheets("raw_LSToolData")
    sourcerange = .Range(.Cells(2, gbegin), .Cells(2, gend))
end with

注意and.之前的 's - this 引用子句對象RangeCellswith

相關內容