Lỗi Thời gian chạy lỗi 1004: Phương thức sao chép lớp Worksheet không thành công

Xin chào,

Tôi đang gặp lỗi, tôi không chắc chắn cách khắc phục. Tôi có một nút mà tôi nhấn trên bảng đang hoạt động để chạy mã mà bạn thấy bên dưới. Giả sử mọi thứ được điền chính xác, thì điều cuối cùng sẽ xảy ra là tab được chỉ định không bị ẩn và sau đó tab đó sẽ chuyển sang tab tiếp theo. Khi tôi nhấn nút, tôi gặp lỗi này.

Lỗi thời gian chạy '1004'.

Không chọn được phương thức của lớp Worksheet.


Sau đó, nó làm nổi bật phần mã tôi đã bôi đậm và bôi đỏ bên dưới.

Trang tính không được bảo vệ và sổ làm việc cũng vậy. Macro phụ Next_Tab_1 này cũng nằm trong một mô-đun

Bạn có ý kiến ​​gì không?


Mã.

Sub Next_Tab_1()
ActiveSheet.Unprotect
If Range("B5").Value <> "Yes" Then
    MsgBox "Can only hit 'Next' if 2nd HMDA Determination Question is answered 'Yes' and light blue fields are populated"
Else
        If Range("B11").Value = "" Then
        MsgBox "Missing Application Number"
Else
                If Range("B13").Value = "" Then
                MsgBox "Missing ULI Number"
Else
                    If Range("B18").Value = "" Then
                    MsgBox "Missing Relationship Manager"
Else
                        If Range("B19").Value = "(Select One)" Or Range("B19").Value = "" Then
                        MsgBox "Missing Yes/No Designation on 5a"
Else
                            If Range("B19").Value = "Yes" And Range("B20").Value = "" Then
                            MsgBox "Missing NMLSR Identifier"
Else
                                If Range("B21").Value = "" Then
                                MsgBox "Missing Individual Completing Form"
Else
                                    If Range("B22").Value = "" Then
                                    MsgBox "Missing Email Address"
Else
                                        If Range("B23").Value = "" Then
                                        MsgBox "Missing Phone Number"
Else
    Sheets("2. Application Status").Visible = True
    [COLOR=#ff0000][SIZE=3][B]W[B]o[/B]rksheets(ActiveSheet.Index + 1).Select[/B][/SIZE][/COLOR]
End If
        End If
            End If
                End If
                    End If
                        End If
                            End If
                                End If
                                    End If
End Sub

 

Chào buổi sáng mọi người. Gần đây tôi đã gặp sự cố sau.

Tôi đã tìm kiếm trên diễn đàn cùng với nhiều trang web khác và dường như không thể tìm ra giải pháp cho vấn đề của mình. Tôi hiện đang sử dụng Excel 2016 (Microsoft Office Professional Plus).

Tôi có một trang tính có tên 29A-1 và tôi đang cố tạo nhiều bản sao của cùng một trang tính. Tôi đã thử nhấp chuột phải vào tab trang tính, chọn Di chuyển hoặc Sao chép, sau đó chọn hộp Tạo bản sao. Tôi cũng đã thử giữ Ctrl sau đó nhấp vào tab và kéo nó đến cuối. Trang tính và sổ làm việc không được bảo vệ.

Tôi cũng đã thử Mã VBA sau.

Sub CopyActiveSheet()
ActiveSheet. Sao chép sau. =Trang tính(Trang tính. Count)
End Sub

Mã VBA sẽ hoạt động một lần và sau đó ở lần thử thứ hai, nó sẽ báo lỗi Thời gian chạy '1004'. Phương thức sao chép của lớp Worksheet không thành công. Nếu tôi đặt lại mã, nó sẽ hoạt động trở lại một lần sau đó lại báo lỗi lần thứ hai.

Về cơ bản, những gì tôi có là các tab trông như thế này.

29A-1 29A-1 (2) Trang tính 3 29A-1 (3) Trang tính5

Trang tính 3 và Trang tính 5 hoàn toàn trống. Tôi nhận được kết quả tương tự khi sử dụng tùy chọn Di chuyển hoặc Sao chép và nhấp vào Ctrl rồi kéo tab. Bất kỳ ai có bất kỳ ý tưởng nào về vấn đề có thể là gì hoặc cách tôi có thể khắc phục sự cố.

Cảm ơn bạn và tôi đánh giá cao bất kỳ sự trợ giúp nào.

 

rlv01 anh ấy nói

FWIW, tôi đã đặt tên cho trang tính là 29-1 và chạy mã bạn đã đăng.

Mã VBA.

Sub CopyActiveSheet()
ActiveSheet.Copy After:=Sheets(Sheets.Count)
End Sub


It created as many copied sheets as I wanted. I stopped after 12

29A-1, 29A-1 (2), 29A-1 (3), 29A-1 (4), 29A-1 (5), 29A-1 (6), 29A-1 (7), 29A-1 (8), 29A-1 (9), 29A-1 (10), 29A-1 (11), 29A-1 (12).

Bấm để mở rộng


rlv01,

Cảm ơn bạn đã phản hồi. Tôi cũng đã thử mở một tệp mới để kiểm tra xem có vấn đề gì với tệp tôi đang làm việc không. Thật không may, tôi vẫn gặp sự cố tương tự khi cố gắng mở một tài liệu mới. Mỗi lần tôi chạy mã, tôi gặp lỗi tương tự và nó chỉ tạo ra một trang tính trống. Tôi cũng đã thử sử dụng tùy chọn di chuyển hoặc sao chép nhưng vẫn không gặp may.

Tôi cũng đã thử mở Excel ở Chế độ an toàn như một trang web khác đề xuất nhưng tôi vẫn gặp sự cố tương tự. Không chắc vấn đề là gì nhưng nó đã hoàn toàn ngăn dự án của tôi tiến lên phía trước.

 

Marc L nói

Xin chào,​

thử xem nó có hoạt động trên một sổ làm việc hoàn toàn mới không …​

Bấm để mở rộng

Marc,

Tôi đã mở một sổ làm việc hoàn toàn mới. Sau khi mở một sổ làm việc hoàn toàn mới, tôi đã sử dụng tùy chọn Di chuyển hoặc Sao chép và nó hoạt động không có vấn đề gì. Tôi cũng đã sử dụng tùy chọn Ctrl và kéo sao chép và nó hoạt động không có vấn đề gì. Tôi đã mở VBA và chèn một mô-đun mới. Tôi đã chèn mã từ bài đăng gốc của mình. Nó hoạt động lần đầu tiên và lần thứ hai tôi gặp lỗi Thời gian chạy '1004'

Tôi nhận thấy rằng sau khi gặp lỗi Thời gian chạy, tôi bắt đầu gặp vấn đề tương tự với Di chuyển . Sau khi lỗi Run-time, tùy chọn Move and Copy chỉ hoạt động một lần, sau đó nó sẽ chỉ tạo ra một trang giấy trắng.

Vì vậy, tôi kết thúc với.

29A-1, 29A-1 (2), 29A-1 (3), 29A-1 (4), 29A-1 (5), 29A-1 (6), 29A- .

All the tabs listed as Sheet(#) are all blank.

Nếu tôi mở một sổ làm việc mới và cố gắng chỉ chạy mã VBA trước, tôi sẽ ngay lập tức gặp Lỗi thời gian chạy trong lần thử đầu tiên và sau đó gặp các sự cố được liệt kê ở trên.

Có vẻ như có điều gì đó liên quan đến mã VBA gây ra sự cố.

 

Hãy thử mã gỡ lỗi này để tạo 10 bản sao cùng một lúc. Sử dụng trình gỡ lỗi để thực hiện từng bước và xem mọi thay đổi không mong muốn đối với ActiveSheet hoặc WB.

Mã VBA.

Sub CopyActiveSheet()
    Dim WB As Workbook, WS As Worksheet
    Dim I As Integer, S As String
    Set WB = ActiveSheet.Parent
    
    On Error GoTo CopyError
    
    For I = 1 To 10
        S = S & ActiveSheet.Name & " --> "

        ActiveSheet.Copy After:=WB.Sheets(WB.Sheets.Count)
        
        S = S & ActiveSheet.Name & vbCr
          
    Next I
    MsgBox S, vbInformation, "Copied"
   Exit Sub
    
CopyError:
    S = S & vbCr & "Copy Error." & vbCr
    S = S & Err.Description & vbCr
    S = S & "Sheets in workbook = " & WB.Sheets.Count & vbCr
    For Each WS In WB.Sheets
        S = S & "    " & WS.Name & vbCr
    Next WS
    
    S = S & vbCr
    S = S & "Name of ActiveSheet = " & ActiveSheet.Name & vbCr
    S = S & "ActiveSheet Type = " & TypeName(ActiveSheet) & vbCr
    MsgBox S, vbInformation, "Copy Error"
End Sub

 

rlv01 anh ấy nói

Hãy thử mã gỡ lỗi này để tạo 10 bản sao cùng một lúc. Sử dụng trình gỡ lỗi để thực hiện từng bước và xem mọi thay đổi không mong muốn đối với ActiveSheet hoặc WB.

Mã VBA.

Sub CopyActiveSheet()
    Dim WB As Workbook, WS As Worksheet
    Dim I As Integer, S As String
    Set WB = ActiveSheet.Parent
   
    On Error GoTo CopyError
   
    For I = 1 To 10
        S = S & ActiveSheet.Name & " --> "

        ActiveSheet.Copy After:=WB.Sheets(WB.Sheets.Count)
       
        S = S & ActiveSheet.Name & vbCr
         
    Next I
    MsgBox S, vbInformation, "Copied"
   Exit Sub
   
CopyError:
    S = S & vbCr & "Copy Error." & vbCr
    S = S & Err.Description & vbCr
    S = S & "Sheets in workbook = " & WB.Sheets.Count & vbCr
    For Each WS In WB.Sheets
        S = S & "    " & WS.Name & vbCr
    Next WS
   
    S = S & vbCr
    S = S & "Name of ActiveSheet = " & ActiveSheet.Name & vbCr
    S = S & "ActiveSheet Type = " & TypeName(ActiveSheet) & vbCr
    MsgBox S, vbInformation, "Copy Error"
End Sub

Bấm để mở rộng

rlv01,

Tôi đã chạy mã của bạn trong cả sổ làm việc mà ban đầu tôi gặp sự cố, sau đó tôi chạy mã đó trong sổ làm việc mới. Tôi nhận được kết quả giống nhau trong cả hai sổ làm việc. Tôi đã đính kèm một đoạn trích của từng kết quả. Tôi hoàn toàn thua lỗ vào thời điểm này. Tôi đã dành rất nhiều thời gian cho dự án này và không có khả năng sao chép trang tính sẽ khiến nó không sử dụng được.

Bạn có suy nghĩ gì không?