Lỗi 424 trong VBA

Liên hệ QC

anle2075

Thành viên mới
Tham gia
14/5/14
Bài viết
3
Được thích
0
Mình cần giúp đỡ với code này: Lỗi chỗ BinValue. Cảm ơn!

Public Sub MakeChoice()

Dim CursorPosition As Integer

' Current row selection.
Dim BinValue As Integer

' Bin for selected row.
Dim Output As Integer

' Storage room number.
' Determine if the user has selected more than one row.
If ActiveWindow.RangeSelection.Rows.Count = 1 Then

' Get the cursor position.
CursorPosition = ActiveWindow.RangeSelection.Row
Else

' Tell the user to select only one cell.
MsgBox "Select only one cell!", _
vbExclamation Or vbOKOnly, _
"Selection Error"

' Exit the Sub without further processing.
End
End If

' Get the selected bin number.
BinValue = Sheet2.Cells(CursorPosition, 2)

' Select a choice of storage room based in the bin.
Select Case BinValue
Case 1
Output = 1
Case 2
Output = 2
Case 3 To 4
Output = 1
Case 5 To 6
Output = 3
End Select

' Store the number in the worksheet.
Sheet2.Cells(CursorPosition, 3) = Output

End Sub
 
Thử dùng msgbox để hiển thị binvalue xem thế nào.
Thử thay ActiveWindow.RangeSelection.Rows.Count bằng Selection.Rows.Count
 
Code của bạn sẽ ngắn như thế này:

PHP:
Public Sub MakeChoice()
  Dim Output As Integer
  If IsArray(Selection) Then 'Hoac  Selection.Cells.Count > 1'
    MsgBox "Select only one cell!", _
    vbExclamation Or vbOKOnly, "Selection Error"
    Exit Sub 'End - la dua VBA ve trang thai 0'
  End If
  Select Case Selection(1, 2).Value
    Case 1, 3 To 4 : Output = 1
    Case 2: Output = 2
    Case 5 To 6: Output = 3
  End Select
  Selection(1, 3).Value = Output
End Sub
 
Thử dùng msgbox để hiển thị binvalue xem thế nào.
Thử thay ActiveWindow.RangeSelection.Rows.Count bằng Selection.Rows.Count
BinValue = 0;
Cách 2 vẫn lỗi chỗ đó;
Cảm ơn bạn!
Bài đã được tự động gộp:

Code của bạn sẽ ngắn như thế này:

PHP:
Public Sub MakeChoice()
  Dim Output As Integer
  If IsArray(Selection) Then 'Hoac  Selection.Cells.Count > 1'
    MsgBox "Select only one cell!", _
    vbExclamation Or vbOKOnly, "Selection Error"
    Exit Sub 'End - la dua VBA ve trang thai 0'
  End If
  Select Case Selection(1, 2).Value
    Case 1, 3 To 4 : Output = 1
    Case 2: Output = 2
    Case 5 To 6: Output = 3
  End Select
  Selection(1, 3).Value = Output
End Sub
Cảm ơn bạn! Nhưng cho mình hỏi lỗi BinValue fix thế nào? Đây là ví dụ trong sách nhưng mình chạy báo lỗi nên cần fix lỗi.
 
Lỗi 424 là lỗi không nhận biết đối tượng.
Giản dị là tại vì cái Workbook ấy không có cái Worksheet tên là Sheet2. Một số cách cài đặt mặc định Excel chỉ tạo 1 sheet là Sheet1.
Tạo thêm một Sheet2 sẽ thấy hết lỗi.
(kết quả có ra đúng như ý hay không thì ông nội tôi cũng không biết; nếu là ví dụ trong sách thì đọc phần giải thích công việc của sub)
 
Lỗi 424 là lỗi không nhận biết đối tượng.
Giản dị là tại vì cái Workbook ấy không có cái Worksheet tên là Sheet2.
Đã viết sách kiếm tiền mà không dậy "Option Explicit"? Và khi cho ví dụ cũng không dùng "Option Explicit"? Sách dậy một thói quen không tốt. Giúp ai miễn phí thì còn biện minh được chứ lấy tiền của người ta mà thế?

Lỗi này thuộc loại "Compiler error" chứ không là "Run-time error". Nếu có Option Explicit thì "người ta" đã chỉ ra ngay chỗ nào sai.

Mà không hiểu sao BinValue As Integer. Ngay cả phiên bản cũ cũng có > 65 000 dòng.
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom