dùng biến mảng trong tách dữ liệu

Liên hệ QC
Status
Không mở trả lời sau này.
Tôi tuân thủ nội quy khi đăng bài

phungvanton

Thành viên mới
Tham gia
17/7/12
Bài viết
37
Được thích
-3
Dear các anh chị !
em có 1 sub tách dữ liệu như sau dùng biến mảnh như dưới đây. Nhưng khi chạy code thì máy báo " complie error Next with out For"
Các cao nhân chỉ giúp em code bị sai ở đâu ạ. Em cảm ơn ạ !
Sub tachdulieu()
Dim arr()
Dim i As Long, a As Long, b As Long, c As Long, lr As Long, j As Long
Dim Frame
Dim Pemnut
Dim Pcm
lr = Sheet6.Cells(Rows.Count, 1).End(xlUp).Row
arr = Sheet6.Range("A1:p" & lr).Value
ReDim Tape(1 To UBound(arr, 1), 1 To 16)
ReDim Pemnut(1 To UBound(arr, 1), 1 To 16)
ReDim Pcm(1 To UBound(arr, 1), 1 To 16)
For i = 1 To UBound(arr, 1)
For j = 1 To 16

If arr(i, 7) = "Frame Assembly" Then
a = a + 1
Tape(a, j) = arr(i, j)
If arr(i, 7) = "Pem nut" Then
b = b + 1
Pemnut(b, j) = arr(i, j)
Else
c = c + 1
Pcm(c, j) = arr(i, j)

End If
Next j

Next i

Sheet8.Range("A1").Resize(a, 16) = Frame
Sheet8.Range("r1").Resize(b, 16) = Pemnut
Sheet8.Range("bb1").Resize(c, 16) = Pcm
End Sub
 
Dear các anh chị !
em có 1 sub tách dữ liệu như sau dùng biến mảnh như dưới đây. Nhưng khi chạy code thì máy báo " complie error Next with out For"
Các cao nhân chỉ giúp em code bị sai ở đâu ạ. Em cảm ơn ạ !
Sub tachdulieu()
Dim arr()
Dim i As Long, a As Long, b As Long, c As Long, lr As Long, j As Long
Dim Frame
Dim Pemnut
Dim Pcm
lr = Sheet6.Cells(Rows.Count, 1).End(xlUp).Row
arr = Sheet6.Range("A1:p" & lr).Value
ReDim Tape(1 To UBound(arr, 1), 1 To 16)
ReDim Pemnut(1 To UBound(arr, 1), 1 To 16)
ReDim Pcm(1 To UBound(arr, 1), 1 To 16)
For i = 1 To UBound(arr, 1)
For j = 1 To 16

If arr(i, 7) = "Frame Assembly" Then
a = a + 1
Tape(a, j) = arr(i, j)
If arr(i, 7) = "Pem nut" Then
b = b + 1
Pemnut(b, j) = arr(i, j)
Else
c = c + 1
Pcm(c, j) = arr(i, j)

End If
Next j

Next i

Sheet8.Range("A1").Resize(a, 16) = Frame
Sheet8.Range("r1").Resize(b, 16) = Pemnut
Sheet8.Range("bb1").Resize(c, 16) = Pcm
End Sub
Có lẽ là do thiếu 1 cái End if
 
Upvote 0
Bớt ẩu tả đi thì tự ên phát hiện ra chổ sai được rồi

PHP:
Sub tachdulieu()
Dim arr(), Frame, Pemnut, Pcm
Dim i As Long, a As Long, b As Long, c As Long, lr As Long, j As Long

lr = Sheet6.Cells(Rows.Count, 1).End(xlUp).Row
arr = Sheet6.Range("A1:p" & lr).Value
ReDim Tape(1 To UBound(arr, 1), 1 To 16)
ReDim Pemnut(1 To UBound(arr, 1), 1 To 16)
ReDim Pcm(1 To UBound(arr, 1), 1 To 16)
 For i = 1 To UBound(arr, 1)
    For j = 1 To 16
        If arr(i, 7) = "Frame Assembly" Then
            a = a + 1
            Tape(a, j) = arr(i, j)
            If arr(i, 7) = "Pem nut" Then
                b = b + 1
                Pemnut(b, j) = arr(i, j)
            Else
                c = c + 1
                Pcm(c, j) = arr(i, j)
            End If
        '??????????? '
    Next j
 Next i
 Sheet8.Range("A1").Resize(a, 16) = Frame
 Sheet8.Range("r1").Resize(b, 16) = Pemnut
 Sheet8.Range("bb1").Resize(c, 16) = Pcm
End Sub
 
Upvote 0
Bớt ẩu tả đi thì tự ên phát hiện ra chổ sai được rồi

PHP:
Sub tachdulieu()
Dim arr(), Frame, Pemnut, Pcm
Dim i As Long, a As Long, b As Long, c As Long, lr As Long, j As Long

lr = Sheet6.Cells(Rows.Count, 1).End(xlUp).Row
arr = Sheet6.Range("A1:p" & lr).Value
ReDim Tape(1 To UBound(arr, 1), 1 To 16)
ReDim Pemnut(1 To UBound(arr, 1), 1 To 16)
ReDim Pcm(1 To UBound(arr, 1), 1 To 16)
 For i = 1 To UBound(arr, 1)
    For j = 1 To 16
        If arr(i, 7) = "Frame Assembly" Then
            a = a + 1
            Tape(a, j) = arr(i, j)
            If arr(i, 7) = "Pem nut" Then
                b = b + 1
                Pemnut(b, j) = arr(i, j)
            Else
                c = c + 1
                Pcm(c, j) = arr(i, j)
            End If
        '??????????? '
    Next j
 Next i
 Sheet8.Range("A1").Resize(a, 16) = Frame
 Sheet8.Range("r1").Resize(b, 16) = Pemnut
 Sheet8.Range("bb1").Resize(c, 16) = Pcm
End Sub
em có sai chỗ đặt biến Frame & Tape, nhưng có đồng bộ lại vẫn báo lỗi. Xin cao nhân chỉ giáo ạ !
Bài đã được tự động gộp:

Có lẽ là do thiếu 1 cái End if
có rồi mà bạn !
 
Upvote 0
em có sai chỗ đặt biến Frame & Tape, nhưng có đồng bộ lại vẫn báo lỗi. Xin cao nhân chỉ giáo ạ !

có rồi mà bạn !
Có rồi, nhưng chưa đủ ông nội ơi
Cửa sổ VBE cho phương tiện lại không chịu xài mà ở đó cãi cố; đến chịu ông bạn thôi!
 
Upvote 0
Có rồi, nhưng chưa đủ ông nội ơi
Cửa sổ VBE cho phương tiện lại không chịu xài mà ở đó cãi cố; đến chịu ông bạn thôi!
Xin cảm ơn bạn. Thực sự mình mới tự học VBA nên chả bít hỏi ai ngoài các cao nhân trên diễn đàn. Rất mong mọi người chỉ giáo. Nhưng bạn có vẻ hơi nặng lời.
 
Upvote 0
Xin cảm ơn bạn. Thực sự mình mới tự học VBA nên chả bít hỏi ai ngoài các cao nhân trên diễn đàn. Rất mong mọi người chỉ giáo. Nhưng bạn có vẻ hơi nặng lời.
Bạn cãi cố thật. Bài 2 nói thiếu, bài 5 nhắc bạn đếm vậy bạn đếm chưa?
 
Upvote 0
. . . . .. Thực sự mình mới tự học VBA nên chả bít hỏi ai ngoài các cao . . . . ..
Mình thì cho rằng cách thức tự học của bạn chưa được & như vậy rất chậm tiếp thu;
Bạn chăm chăm chỉ muốc người khác căn kẻ chỉ cho bạn; bạn chưa tự thân vận động
Ở đây, trên diễn đàn này, cũng sẽ có người 'cầm tay chỉ việc, cũng có người gợi ý để bạn có hướng đi
& cũng có người bày cho bạn biện pháp tránh ổ gà . . . .;
[Bạn đã nhìn ở #3 người ta viết thẳng lối theo cột chưa, nếu câu trả lời là 'Đã' thì xin bạn nhìn lại lần nữa;
/(hông dưng mà CS VBE cho ta xài phím {TAB} trong nó để ta gióng thẳng cột đâu!!]

. . . Bài 2 nói thiếu, bài 5 nhắc bạn đếm vậy bạn đếm chưa?
Ngó người ta viết gì cho mình còn chưa ngó nữa là vừa ngó vừa đếm!
 
Upvote 0
Bạn cãi cố thật. Bài 2 nói thiếu, bài 5 nhắc bạn đếm vậy bạn đếm chưa?
xin lỗi bạn là mình không phải không đếm mà cũng không phải là biết thiếu.
Vì mình kiến thức mình rất hạn chế. Mình chỉ biết là có if thì chỉ cần end if là được. Do vậy đôi khi cứ phải hỏi ngu. bạn thông cảm. Mà bạn chấp với thằng ngu làm gì cơ chứ nhỉ ?
Bài đã được tự động gộp:

Bạn cãi cố thật. Bài 2 nói thiếu, bài 5 nhắc bạn đếm vậy bạn đếm chưa?
Người giỏi thường hay có cái thái độ bố mẹ thiên hạ thì phải ???
 
Upvote 0
xin lỗi bạn là mình không phải không đếm mà cũng không phải là biết thiếu.
Vì mình kiến thức mình rất hạn chế. Mình chỉ biết là có if thì chỉ cần end if là được. Do vậy đôi khi cứ phải hỏi ngu. bạn thông cảm. Mà bạn chấp với thằng ngu làm gì cơ chứ nhỉ ?
Bài đã được tự động gộp:


Người giỏi thường hay có cái thái độ bố mẹ thiên hạ thì phải ???
Vậy là khi viết bài 4 bạn đã đếm lại rồi?
 
Upvote 0
xin lỗi bạn là mình không phải không đếm mà cũng không phải là biết thiếu.
Vì mình kiến thức mình rất hạn chế. Mình chỉ biết là có if thì chỉ cần end if là được. Do vậy đôi khi cứ phải hỏi ngu. bạn thông cảm. Mà bạn chấp với thằng ngu làm gì cơ chứ nhỉ ?
Người giỏi thường hay có cái thái độ bố mẹ thiên hạ thì phải ???
"Không phải không đếm" tức là có đếm. Tuy nhiên cách đếm của bạn sai. Bạn nói "có if thì chỉ cần end if", nhưng bạn có 2 if, chỉ 1 end if. Thế mới gọi là thiếu, mới gọi là cần phải đếm.
Tôi không gọi ai là ngu, chỉ là không biết. Không biết thì tôi nhắc chứ không chấp. Cũng không làm bố mẹ ai, bạn làm theo tôi mà đếm lại từ sau bài 5 là tôi mừng cho bạn rồi.
 
Upvote 0
Vậy là khi viết bài 4 bạn đã đếm lại rồi?
Mình đã đếm lại. Nhưng là không biết là có bao nhiêu if thì có bấy nhiêu end if.
Giờ thì mình đã hiểu.
Thanks bạn.
Bài đã được tự động gộp:

"Không phải không đếm" tức là có đếm. Tuy nhiên cách đếm của bạn sai. Bạn nói "có if thì chỉ cần end if", nhưng bạn có 2 if, chỉ 1 end if. Thế mới gọi là thiếu, mới gọi là cần phải đếm.
Tôi không gọi ai là ngu, chỉ là không biết. Không biết thì tôi nhắc chứ không chấp. Cũng không làm bố mẹ ai, bạn làm theo tôi mà đếm lại từ sau bài 5 là tôi mừng cho bạn rồi.
Xin cảm ơn bạn. Mình đã hiểu vấn đề.
 
Upvote 0
Mình thì cho rằng cách thức tự học của bạn chưa được & như vậy rất chậm tiếp thu;
Bạn chăm chăm chỉ muốc người khác căn kẻ chỉ cho bạn; bạn chưa tự thân vận động
Ở đây, trên diễn đàn này, cũng sẽ có người 'cầm tay chỉ việc, cũng có người gợi ý để bạn có hướng đi
& cũng có người bày cho bạn biện pháp tránh ổ gà . . . .;
[Bạn đã nhìn ở #3 người ta viết thẳng lối theo cột chưa, nếu câu trả lời là 'Đã' thì xin bạn nhìn lại lần nữa;
/(hông dưng mà CS VBE cho ta xài phím {TAB} trong nó để ta gióng thẳng cột đâu!!]


Ngó người ta viết gì cho mình còn chưa ngó nữa là vừa ngó vừa đếm!
Năng lực của mỗi người mỗi khác bạn nhé.
Vậy bạn không nên dùng năng lực của bạn mà quy chiếu cho người khác.
Cảm ơn !
 
Upvote 0
Năng lực của mỗi người mỗi khác bạn nhé.
Vậy bạn không nên dùng năng lực của bạn mà quy chiếu cho người khác.
Cảm ơn !
Bạn nói cũng 1 phần đúng về năng lực!
Tuy nhiên bạn chưa thấy năng lực bản thân của bạn:
Nếu bạn bớt Excel này đi & học nghề thầy cãi sẽ tốt cho bạn nhiều, mình chắc chắn về điều này như đinh đóng cột!
 
Upvote 0
1. Đưa cho đứa trẻ 10 tuổi quyển sách VBA. Bảo nó tự học.
Khoảng 3 tháng sau nó sẽ biết mỗi IF sẽ cần một End If để xác định tầm vực của điều kiện IF. Và đứa trẻ cũng biết luôn các trường hợp ngoại lệ mà IF không cần End If.
Tự học mà không biết điều kiện căn bản này là do học cẩu thả. Không có cớ nào biện hộ cả.

2. Người ta đã mách cho khả năng của lỗi, bài #3 chỉ luôn chỗ thiếu lệnh End If. Đọc thì không chịu đọc, thấy người ta nói đến từ "ẩu tả" là cụ tự ái dâng lên tối tăm mặt mày, còn tâm trí đâu mà đọc code để nhận định chỗ sai.

3.
...
Người giỏi thường hay có cái thái độ bố mẹ thiên hạ thì phải ???
Sai rồi, bố mẹ ai thì còn hãnh diện chứ bố mẹ Tây con mất gốc thì nhục bỏ mẹ, ai dám nhận.

Năng lực của mỗi người mỗi khác bạn nhé.
Vậy bạn không nên dùng năng lực của bạn mà quy chiếu cho người khác.
...
Cỡ trình độ bạn chưa đủ để nói đến "năng lực" và "nên" này "nên" nọ. Buồn cười lắm.

...
Nếu bạn bớt Excel này đi & học nghề thầy cãi sẽ tốt cho bạn nhiều, mình chắc chắn về điều này như đinh đóng cột!
Không được đâu bạn ơi. Nghề thầy cãi dựa vào đọc và tra cứu luật. Đồng thời phải biết lắng tai nghe cho kỹ, bên kia sơ hở gì là ghi xuống, nện lại.
Lười biếng và cẩu thả mức này, bên kia nó nện cho không còn manh giáp.
Trừ phi ỷ trượng là COCC thì là chuyện khác.
 
Upvote 0
1. Đưa cho đứa trẻ 10 tuổi quyển sách VBA. Bảo nó tự học.
Khoảng 3 tháng sau nó sẽ biết mỗi IF sẽ cần một End If để xác định tầm vực của điều kiện IF. Và đứa trẻ cũng biết luôn các trường hợp ngoại lệ mà IF không cần End If.
Tự học mà không biết điều kiện căn bản này là do học cẩu thả. Không có cớ nào biện hộ cả.

2. Người ta đã mách cho khả năng của lỗi, bài #3 chỉ luôn chỗ thiếu lệnh End If. Đọc thì không chịu đọc, thấy người ta nói đến từ "ẩu tả" là cụ tự ái dâng lên tối tăm mặt mày, còn tâm trí đâu mà đọc code để nhận định chỗ sai.

3.

Sai rồi, bố mẹ ai thì còn hãnh diện chứ bố mẹ Tây con mất gốc thì nhục bỏ mẹ, ai dám nhận.


Cỡ trình độ bạn chưa đủ để nói đến "năng lực" và "nên" này "nên" nọ. Buồn cười lắm.


Không được đâu bạn ơi. Nghề thầy cãi dựa vào đọc và tra cứu luật. Đồng thời phải biết lắng tai nghe cho kỹ, bên kia sơ hở gì là ghi xuống, nện lại.
Lười biếng và cẩu thả mức này, bên kia nó nện cho không còn manh giáp.
Trừ phi ỷ trượng là COCC thì là chuyện khác.
Ban có vẻ thích làm bố mẹ thiên hạ nhỉ. Không biết bạn ở nhà có hay thế k ?
 
Upvote 0
Không khí căng thẳng. Tôi khóa chủ đề lại.
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom