Phần này tôi ghép được rồi
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim Tem As Variant
If Not Intersect(Target, [AF4:AO13]) Is Nothing Then
Application.EnableEvents = False
Tem = Target
Target.Offset(29) = Target.Offset(29) + Tem
Target.ClearContents
Application.EnableEvents = True
ElseIf Not Intersect(Target, [AF20:AO29]) Is Nothing Then
Application.EnableEvents = False
Tem = Target
Target.Offset(13, -12) = Target.Offset(13, -12) + Tem
Target.ClearContents
Application.EnableEvents = True
ElseIf Not Intersect(Range("AR20:AR29,AU20:AU29,AX20:AX29,BA19:BA30,BD19:BD30,BG16:BG30,BJ19:BJ22"), Target) Is Nothing Then
Application.EnableEvents = False
Tem = Target
Target.Offset(, 1) = Target.Offset(, 1) + Tem
Target.ClearContents
Application.EnableEvents = True
ElseIf Not Intersect(Union([x18], [BX20:CG29]), Target) Is Nothing Then
book1
End If
End Sub
nhưng còn phần này thì:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim Tem As Variant
If Not Intersect(Target, [AF4:AO13]) Is Nothing Then
Application.EnableEvents = False
Tem = Target
Target.Offset(29) = Target.Offset(29) + Tem
Target.ClearContents
Application.EnableEvents = True
ElseIf Not Intersect(Target, [AF20:AO29]) Is Nothing Then
Application.EnableEvents = False
Tem = Target
Target.Offset(13, -12) = Target.Offset(13, -12) + Tem
Target.ClearContents
Application.EnableEvents = True
ElseIf Not Intersect(Range("AR20:AR29,AU20:AU29,AX20:AX29,BA19:BA30,BD19:BD30,BG16:BG30,BJ19:BJ22"), Target) Is Nothing Then
Application.EnableEvents = False
Tem = Target
Target.Offset(, 1) = Target.Offset(, 1) + Tem
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Activate()
Dim NV, i, temp, j, jj
Dim arrkq(1 To 10, 1 To 10)
NV = Array("Phuong!", "Toan!", "Tuan!", "Tu!", "Dat!", "KAnh!", "Hoa!", "Giang!", "Lan!", "BaChau!", "NinhBinh!", "Khanh!")
For i = 0 To UBound(NV, 1)
temp = Sheets(NV(i)).[T20:AC29]
For j = 1 To 10
For jj = 1 To 10
arrkq(j, jj) = arrkq(j, jj) + temp(j, jj)
Next
Next
Next
[BX20:CG29] = arrkq
End Sub
Nó không chạy được vì lỗi : Run-time error '9'
Subscipt out ò range
Đọc HELP dịch ra:
Thời gian chạy lỗi '9'
Subscipt trong phạm vi ò
Bạn tham chiếu một phần tử mảng không tồn tại.
Subscript có thể lớn hơn hoặc nhỏ hơn so với phạm vi có thể subscripts, hoặc các mảng có thể không có kích thước được chỉ định tại điểm này trong các ứng dụng. Kiểm tra tuyên bố của các mảng để xác minh các giới hạn trên và dưới. Sử dụng các chức năng UBound và LBound để tình trạng mảng truy cập nếu bạn đang làm việc với mảng đó redimensioned. Nếu chỉ mục được chỉ định như là một biến, kiểm tra chính tả của tên biến.
Bạn tuyên bố một mảng nhưng không xác định số lượng các yếu tố. Ví dụ, mã sau đây gây ra lỗi này: Dim MyArray() như là số nguyên
MyArray(8) = 234 ' nguyên nhân lỗi 9.
Visual Basic ngầm không kích thước mảng không xác định phạm vi như 0-10. Thay vào đó, bạn phải sử dụng Dim hoặc ReDim để xác định một cách rõ ràng số thành phần trong một mảng.
Bạn tham chiếu một thành viên bộ sưu tập không tồn tại.
Thử dùng cho mỗi...Tiếp theo xây dựng thay vì xác định các yếu tố chỉ số
Bạn đã sử dụng một hình thức viết tắt subscript ngầm đã chỉ định một phần tử không hợp lệ.
Ví dụ, khi bạn sử dụng các! nhà điều hành với một bộ sưu tập, các! ngầm chỉ định một khóa. Ví dụ, object!keyname.value là tương đương với object.item (keyname) .value. Trong trường hợp này, một lỗi được tạo ra nếu keyname đại diện cho một khóa không hợp lệ trong bộ sưu tập. Để khắc phục lỗi, sử dụng một tên hợp lệ phím hoặc chỉ số cho bộ sưu tập.
Tôi đọc không hiểu gì hết ?!!!. Rất mong bạn xem hộ. Xin chân thành cám ơn.