vba_gpe
Thành viên thường trực
- Tham gia
- 15/12/10
- Bài viết
- 296
- Được thích
- 44
- Nghề nghiệp
- Thất nghiệp
- Kiến thức VB của mình ít, mình nhờ các bạn chỉ giúp mình vấn đề này.
- Làm sao để Excel tự động thêm công thức theo yêu cầu.
+ Vật liệu: Sẽ cộng tất cả các hao phí có mã hiệu bắt đầu bằng chử "V"
+ Nhân công: -----------------------------------------------------"N"
+ Máy thi công: --------------------------------------------------"M"
+ Tổng cộng: Tổng vật liệu + nhân công + máy thi công.
Số lượng công tác không xác định, số lượng vật tư cũng không xác định.
Trong file mình gửi mình chỉ lấy 2 công tác làm điển hình.
Mình có ghi macro tuy nhiên không biết làm sao sẽ áp dụng được cho tất cả các công tác.
Nhờ các bạn giúp đỡ.
Code:
Mình nghĩ có lẽ như sau:
Nhưng mình không biết làm sao cho excel chỉ tìm vật liệu, nhân công, máy trong 1 vùng nhất định (vùng công tác 1).
Thực hiện các công việc trên trong công tác 1, thực hiện xong nó sẽ chuyển xuống công tác 2. Vùng sum sẽ thay đổi.
Mong nhận được giúp đỡ của các bạn. Chân thành cảm ơn.
- Làm sao để Excel tự động thêm công thức theo yêu cầu.
+ Vật liệu: Sẽ cộng tất cả các hao phí có mã hiệu bắt đầu bằng chử "V"
+ Nhân công: -----------------------------------------------------"N"
+ Máy thi công: --------------------------------------------------"M"
+ Tổng cộng: Tổng vật liệu + nhân công + máy thi công.
Số lượng công tác không xác định, số lượng vật tư cũng không xác định.
Trong file mình gửi mình chỉ lấy 2 công tác làm điển hình.
Mình có ghi macro tuy nhiên không biết làm sao sẽ áp dụng được cho tất cả các công tác.
Nhờ các bạn giúp đỡ.
Code:
PHP:
Sub Chay_thu()
Range("I7").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[4]C)"
' Sum vật liệu
'
Range("I12").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[2]C)"
' Sum nhân công
'
Range("I15").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[2]C)"
' Sum máy
'
Range("I18").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-3]C,R[-6]C,R[-11]C)"
' Sum tổng và xong công tác 1, chuyển qua công tác 2
'
Range("I19").Select
ActiveWindow.SmallScroll Down:=12
Range("I20").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[9]C)"
Range("I30").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C)"
Range("I32").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C)"
Range("I34").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-2]C,R[-4]C,R[-14]C)"
Range("I35").Select
End Sub
PHP:
'+ Sum vật liệu
Range("Ik").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[i]C)"
[4] bằng [a], "I7" bằng "Ib"
a: số dòng sẽ sum
b: số dòng sẽ bắt đầu tính sum
' + Sum nhân công
Range("Ic").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[d]C)"
' + Sum máy thi công
Range("Ie").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[f]C)"
'+ Sum tổng:
ActiveCell.FormulaR1C1 =SUM(R[-g]C,R[-h]C,R[-i]C)
trong đó g = b-a (cho vật liệu)
h=c-d (cho nhân công)
i=e-f (cho máy thi công)
Thực hiện các công việc trên trong công tác 1, thực hiện xong nó sẽ chuyển xuống công tác 2. Vùng sum sẽ thay đổi.
Mong nhận được giúp đỡ của các bạn. Chân thành cảm ơn.
File đính kèm
Lần chỉnh sửa cuối: