Làm sao code hiểu như copy công thức (1 người xem)

Người dùng đang xem chủ đề này

congnguyen88

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
22/7/14
Bài viết
355
Được thích
31
Tôi có 1 bảng tính Excel gồm 3 cột Đơn giá, Số lượng, thành tiền dữ liệu nằm trong vùng A2:C100 tôi mới học Vba nên tôi viết code tính thành tiền như sau

Sub Tinhthanhtien()
Range("c2") = Range("a2") * Range("b2")
Range("c3") = Range("a3") * Range("b3")
............
............
Range("c100") = Range("a100") * Range("b100")
End Sub


Nếu như vậy Dài quá, có cách nào không mọi người
 
Tôi có 1 bảng tính Excel gồm 3 cột Đơn giá, Số lượng, thành tiền dữ liệu nằm trong vùng A2:C100 tôi mới học Vba nên tôi viết code tính thành tiền như sau

Sub Tinhthanhtien()
Range("c2") = Range("a2") * Range("b2")
Range("c3") = Range("a3") * Range("b3")
............
............
Range("c100") = Range("a100") * Range("b100")
End Sub


Nếu như vậy Dài quá, có cách nào không mọi người
Nếu để tính thì bạn thử tý tẹo này xem :

Sub thu()
Range("C2").FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("C2").AutoFill Destination:=Range("C2:C100")
End Sub

chứ ai lại làm trăm dòng thế .
 
Upvote 0
Tôi có 1 bảng tính Excel gồm 3 cột Đơn giá, Số lượng, thành tiền dữ liệu nằm trong vùng A2:C100 tôi mới học Vba nên tôi viết code tính thành tiền như sau

Sub Tinhthanhtien()
Range("c2") = Range("a2") * Range("b2")
Range("c3") = Range("a3") * Range("b3")
............
............
Range("c100") = Range("a100") * Range("b100")
End Sub


Nếu như vậy Dài quá, có cách nào không mọi người
Thử thế này xem!
Mã:
Sub Tinhthanhtien()
Range("C2:C100").FormulaR1C1 = "=RC[-2]*RC[-1]"
End Sub
 
Upvote 0
Upvote 0
Nếu để tính thì bạn thử tý tẹo này xem :

Sub thu()
Range("C2").FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("C2").AutoFill Destination:=Range("C2:C100")
End Sub

chứ ai lại làm trăm dòng thế .

Không được rồi mình muốn ô đó chỉ hiện ra kết quả value thôi, đừng có hiện công thức khi nhắp đúp vào
 
Upvote 0
Không được rồi mình muốn ô đó chỉ hiện ra kết quả value thôi, đừng có hiện công thức khi nhắp đúp vào
thế thì :
Sub Tinhthanhtien()
Range("C2:C100").Formula = "=RC[-2]*RC[-1]"
With Range("C2:C100")
.Value = .Value
End With
End Sub

à quên, quay lại để cảm ơn susu !
 
Lần chỉnh sửa cuối:
Upvote 0
thế thì :
Sub Tinhthanhtien()
Range("C2:C100").Formula = "=RC[-2]*RC[-1]"
With Range("C2:C100")
.Value = .Value
End With
End Sub

à quên, quay lại để cảm ơn susu !
Câu lệnh With chỉ để chứa 1 lệnh trong đó thì phí quá. Sửa lại thế này đỡ phí hơn:
[GPECODE=vb]Sub Tinhthanhtien()
With Range("C2:C100")
.Formula = "=RC[-2]*RC[-1]"
.Value = .Value
End With
End Sub[/GPECODE]
 
Upvote 0
Thế... nếu dùng .Value thay cho chỗ màu đỏ thì có được không? --=0
Nếu vậy thì bỏ quách luôn chữ value cho rồi...Kết quả cũng như nhau
Muốn ngắn thì cho ngắn. Số dòng cũng ít hơn, ký tự cũng ít hơn và nhìn cũng thấy gớm hơn luôn
PHP:
Sub Tinhthanhtien()    
    [C2:C100] = "=RC[-2]*RC[-1]"
    [C2:C100] = [C2:C100]
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
!!!!!!!!!!!!!!!!!!!!!!!!!
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi có 1 bảng tính Excel gồm 3 cột Đơn giá, Số lượng, thành tiền dữ liệu nằm trong vùng A2:C100 tôi mới học Vba nên tôi viết code tính thành tiền như sau

Sub Tinhthanhtien()
Range("c2") = Range("a2") * Range("b2")
Range("c3") = Range("a3") * Range("b3")
............
............
Range("c100") = Range("a100") * Range("b100")
End Sub


Nếu như vậy Dài quá, có cách nào không mọi người
còn tóc đâu nữa mà bay ?
Mã:
Sub Tinhthanhtien()
    [C2:C100] = [A2:A100 * B2:B100]
End Sub
 
Upvote 0
thế thì :
Sub Tinhthanhtien()
Range("C2:C100").Formula = "=RC[-2]*RC[-1]"
With Range("C2:C100")
.Value = .Value
End With
End Sub

à quên, quay lại để cảm ơn susu !
Em làm được rồi
code đây nek

Sub Tinhthanhtien()
Range("C2:C100").Formula = "=RC[-2]*RC[-1]"
Range("C2:C100") = Range("C2:C100").Value
End Sub
 
Upvote 0
Tôi có 1 bảng tính Excel gồm 3 cột Đơn giá, Số lượng, thành tiền dữ liệu nằm trong vùng A2:C100 tôi mới học Vba nên tôi viết code tính thành tiền như sau

Sub Tinhthanhtien()
Range("c2") = Range("a2") * Range("b2")
Range("c3") = Range("a3") * Range("b3")
............
............
Range("c100") = Range("a100") * Range("b100")
End Sub


Nếu như vậy Dài quá, có cách nào không mọi người
Tôi vẫn thường sử dụng thủ tục worksheet_Change() trong những trường hợp như thế này.
 

File đính kèm

Upvote 0

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

Back
Top Bottom