nguoikemcoi
Thành viên mới
- Tham gia
- 24/11/07
- Bài viết
- 17
- Được thích
- 0
Làm sao để chay vòng lặp 2 lần trong 2 cột khác nhau:
Ý mình muốn như sau:
- Làm sao cứ đến giá trị thành tiền của hàng tổng cộng sẽ tự động cộng tất cả các giá trị chi phí lớn trong từng bộ phận riêng biệt. Giá trị tổng cộng này sẽ tính cho mỗi người riêng biệt.
Nhờ các bạn giúp.
- Mình đã dùng vòng For 2 lần cho 2 cột khác nhau.
Lần 1: Tìm trong cột B (Mã nhân viên), nếu ô nào có mã nhân viên(tương ứng với dòng i), thì sẽ tìm trong cột D tương ứng với số dòng là j=i+1.
Lần 2: Tìm trong cột D, nếu thấy dòng nào có tên "Tổng cộng" thì sẽ đếm từ vị trí Cell có tên tổng cộng đó lên đến dòng thứ j (Mục đích của việc làm này là để xác định khoảng cách từ dòng thứ i đến vị trí cuối cùng để thực hiện lệnh sum cho ô tổng cộng.
Sau đó, nếu thực hiện được cho nhân viên số 1, ta sẽ tiếp tục duyệt đối với nhân viên số 2.
Mình thử viết nhưng Excel báo lỗi, mình không biết xử thế nào nên nhờ các bác:
Sub Chay_thu()
i = 1
Dim Cell1 As Range
Sheets("Vi du").Select
Range("B" & i":B1000").Select
For i = 1 To 1000
If i < "6" Then
i = i + 1
Else
For Each Cell1 In Selection.Cells
If Cell1 <> "" Then
Range("D").Select
Dim dem As Long
dem = 1
For j = i + 1 To 1000 Step 1
dem = dem + 1
Dim Cell2 As Range
If Cell2 = "Tổng cộng" Then
i = i + dem
j = 10001
Cell2.Offset(0, 7) = Cong thuc tinh tong cua tung nhan vien
End If
Next
End If
Next
End If
Next
End Sub
Kiến thức mình còn hạn chế, nhờ các bác giúp đỡ mình nhé.
Thank rất rất nhiều. Mình có gửi file kèm theo:
Mình gửi bài lần đầu nên nhờ ban quản trị chỉ mình cách làm sao để paste đoạn code vào bài viết, khi up lên hiển thị giống như trong VB. (Mình thấy các bác làm dễ đọc quá chừng, mình copy rồi paste, đến khi xem lại bài thì thấy nó canh trái. Mình mò mà hổng chỉnh được, nhờ giúp đỡ để lần sau post bài dễ đọc hơn.
Thân.
Ý mình muốn như sau:
- Làm sao cứ đến giá trị thành tiền của hàng tổng cộng sẽ tự động cộng tất cả các giá trị chi phí lớn trong từng bộ phận riêng biệt. Giá trị tổng cộng này sẽ tính cho mỗi người riêng biệt.
Nhờ các bạn giúp.
- Mình đã dùng vòng For 2 lần cho 2 cột khác nhau.
Lần 1: Tìm trong cột B (Mã nhân viên), nếu ô nào có mã nhân viên(tương ứng với dòng i), thì sẽ tìm trong cột D tương ứng với số dòng là j=i+1.
Lần 2: Tìm trong cột D, nếu thấy dòng nào có tên "Tổng cộng" thì sẽ đếm từ vị trí Cell có tên tổng cộng đó lên đến dòng thứ j (Mục đích của việc làm này là để xác định khoảng cách từ dòng thứ i đến vị trí cuối cùng để thực hiện lệnh sum cho ô tổng cộng.
Sau đó, nếu thực hiện được cho nhân viên số 1, ta sẽ tiếp tục duyệt đối với nhân viên số 2.
Mình thử viết nhưng Excel báo lỗi, mình không biết xử thế nào nên nhờ các bác:
Sub Chay_thu()
Dim i As Long
Dim j As Long
i = 1
Dim Cell1 As Range
Sheets("Vi du").Select
Range("B" & i":B1000").Select
For i = 1 To 1000
If i < "6" Then
i = i + 1
Else
For Each Cell1 In Selection.Cells
If Cell1 <> "" Then
Range("D").Select
Dim dem As Long
dem = 1
For j = i + 1 To 1000 Step 1
dem = dem + 1
Dim Cell2 As Range
If Cell2 = "Tổng cộng" Then
i = i + dem
j = 10001
Cell2.Offset(0, 7) = Cong thuc tinh tong cua tung nhan vien
End If
Next
End If
Next
End If
Next
End Sub
Kiến thức mình còn hạn chế, nhờ các bác giúp đỡ mình nhé.
Thank rất rất nhiều. Mình có gửi file kèm theo:
Mình gửi bài lần đầu nên nhờ ban quản trị chỉ mình cách làm sao để paste đoạn code vào bài viết, khi up lên hiển thị giống như trong VB. (Mình thấy các bác làm dễ đọc quá chừng, mình copy rồi paste, đến khi xem lại bài thì thấy nó canh trái. Mình mò mà hổng chỉnh được, nhờ giúp đỡ để lần sau post bài dễ đọc hơn.
Thân.
File đính kèm
Lần chỉnh sửa cuối: