Lỗi phụ hoặc Hàm không xác định khi cố gắng nối nhiều chuỗi thành một ô trong VB


0

Tôi đã cố gắng tạo ra một công cụ nhanh chóng ngay hôm nay tại nơi làm việc để tự động hóa một số tác vụ tại nơi làm việc nhưng gặp phải vấn đề về lỗi Sun hoặc Function. Tôi là một người mới tuyệt đối trong VB và không quen thuộc với cú pháp và cụ thể ngôn ngữ. Liệu bạn có thể giúp mình không? Chi tiết về những gì tôi đang cố gắng thực hiện: Về cơ bản, tôi có nhiều nhóm (chỉ có 4 ô trong mỗi nhóm) mà tôi đang cố gắng sao chép vào một ô. Như thế này:

Nhóm1: cell1 cell2 cell3 cell4

Nhóm2 :. . . Mỗi một trong những nhóm đó cần được sao chép vào các ô riêng biệt.

Đây là mã:

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

EDIT: Tôi cảm thấy như mình cũng cần xác định rằng sự cố xuất hiện trong hàm GlobalConcatenation () và bất cứ khi nào tôi gặp lỗi, "sourcerange" sẽ được tô sáng.

EDIT: đã cập nhật mã - lỗi chính tả đã sửa


sourcerangexuất hiện trong mã của bạn nhiều lần. Vì vậy, dòng nào là thực sự phá vỡ? Ngoài ra, dường như có một vài lỗi chính tả / lỗi chính tả khác trong mã của bạn.
Lèse majesté

Câu trả lời:


0

Điều này là do lỗi chính tả trên dòng này tại gbeging: -

Sai một: -

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

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

Đúng một: -

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

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

cảm ơn bạn đã trả lời nhưng vấn đề vẫn còn tồn tại
GKED

@GKED: Bây giờ bạn đang nhận được thông báo lỗi gì. Nơi bạn đang gán giá trị của callConcatinateAllCellValuesInRange (sourcerange)?
Siva Charan

0

Nguyên nhân rất có thể gây ra lỗi của bạn là các tham chiếu không đủ tiêu chuẩn đến các ô trong các dòng như

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

Cells(2, gbegin)đề cập đến một ô trên bảng hoạt động. Nếu đây không phải raw_LSToolDatalà một lỗi sẽ dẫn đến

Mã chính xác là

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

Một cách tốt hơn là

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

Lưu ý các .trước RangeCells- tham chiếu withđối tượng mệnh đề

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.