Hàm excel tự cộng chính nó?

Liên hệ QC

lenhi96

Thành viên mới
Tham gia
13/5/14
Bài viết
49
Được thích
5
Em chào mọi người, em đang có 1 bài toán như này mong mọi người giúp đỡ ạ.



1​

2​

Bài toán: khi thay đổi giá trị ở ô số 2 thì ô số 1 sẽ trả về kết quả bằng Giá trị của ô số 1 + giá trị của ô số 2
ví dụ: Lần 1: ô số 1 giá trị 1, ô số 2 có giá trị 2, ==> kết quả ô số 1 sẽ bằng : 1+2=3
Lần 2: thay giá trị ô số 2 bằng 10 ===> kết quả ô số 1 bằng : 3+10 =13
....
 
Em chào mọi người, em đang có 1 bài toán như này mong mọi người giúp đỡ ạ.



1​



2​


Bài toán: khi thay đổi giá trị ở ô số 2 thì ô số 1 sẽ trả về kết quả bằng Giá trị của ô số 1 + giá trị của ô số 2
ví dụ: Lần 1: ô số 1 giá trị 1, ô số 2 có giá trị 2, ==> kết quả ô số 1 sẽ bằng : 1+2=3
Lần 2: thay giá trị ô số 2 bằng 10 ===> kết quả ô số 1 bằng : 3+10 =13
....
làm gì dược......sẻ bị lổi tham số vòng
làm bằng code vba thì được
 
Em chào mọi người, em đang có 1 bài toán như này mong mọi người giúp đỡ ạ.



1​



2​


Bài toán: khi thay đổi giá trị ở ô số 2 thì ô số 1 sẽ trả về kết quả bằng Giá trị của ô số 1 + giá trị của ô số 2
ví dụ: Lần 1: ô số 1 giá trị 1, ô số 2 có giá trị 2, ==> kết quả ô số 1 sẽ bằng : 1+2=3
Lần 2: thay giá trị ô số 2 bằng 10 ===> kết quả ô số 1 bằng : 3+10 =13
....
Giả sử A1=ô số 1, A2= ô số 2, bạn thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Target.Offset(-1) = Target.Offset(-1) + Target
    End If
End Sub
 
Giả sử A1=ô số 1, A2= ô số 2, bạn thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Target.Offset(-1) = Target.Offset(-1) + Target
    End If
End Sub
Hic, em cảm ơn ạ, nhưng em k biết dùng code này vào đâu ạ? :(
 
Hic, em cảm ơn ạ, nhưng em k biết dùng code này vào đâu ạ? :(
Bạn làm như sau:
1. Nhấn phím Alt +F11
2. Bạn Copy đoạn Code trên và dán vào cửa sổ VBA của Sheet1
3. Ghi lai.
4. Quay lại bảng tính và thay đổi các giá trị trong 2 ô A1&A2.
 
Lần chỉnh sửa cuối:
Bạn làm như sau:
1. Nhấn phím Alt +F11
2. Bạn Copy đoạn Code trên và dán vào cửa sổ VBA của Sheet1
3. Ghi lai.
4. Quay lại bảng tính và thay đổi các giá trị trong 2 ô A1&A2.
Bạn xem File
Em vừa xem trong file, nhưng lúc em thay đổi giá trị ô A2 nhiều lần thì A1 ko tăng giá trị ạ. Em muốn cứ mỗi lần thay đổi giá trị ô A2 thì ô A1 cũng thay đổi theo thuật toán trên cơ ạ
 
Em vừa xem trong file, nhưng lúc em thay đổi giá trị ô A2 nhiều lần thì A1 ko tăng giá trị ạ. Em muốn cứ mỗi lần thay đổi giá trị ô A2 thì ô A1 cũng thay đổi theo thuật toán trên cơ ạ
Làm gì có chuyện đó được?
Bạn thử lại lần nữa đi nhé.
 
Làm gì có chuyện đó được?
Bạn thử lại lần nữa đi nhé.
Code chỉ thay đổi A1 khi A2 thay đổi, chưa xét trường hợp phải thay đổi A2 khi A1 thay đổi. Mà chủ topic cũng không nêu trường hợp thay đổi cả A1 A2 cùng lúc sẽ ra sao?
 
Code chỉ thay đổi A1 khi A2 thay đổi, chưa xét trường hợp phải thay đổi A2 khi A1 thay đổi. Mà chủ topic cũng không nêu trường hợp thay đổi cả A1 A2 cùng lúc sẽ ra sao?
Cái thay đổi cả A1 và A2 em ko quan tâm lắm ạ. Em chỉ cần mỗi khi thay đổi giá trị A2, thì A1 sẽ = A1+ A2 ạ.
( em thấy nó hơi giống phép toán ANS trong máy tính casio đấy ạ, khi tính xong nó gán kết quả cho ANS rồi sẽ cộng tiếp với kết quả tiếp theo)
Bài đã được tự động gộp:

Code chỉ thay đổi A1 khi A2 thay đổi, chưa xét trường hợp phải thay đổi A2 khi A1 thay đổi. Mà chủ topic cũng không nêu trường hợp thay đổi cả A1 A2 cùng lúc sẽ ra sao?
Em ko biết lỗi này có ảnh hưởng ko ạ, nhưng khi em thay đổi A2 nhiều lần thì ko thấy A1 thay đổi ạ
1530785693911.png
 
Bạn tìm hiểu về thủ tục sự kiện nhé, dùng mấy thứ này không quen dễ lỗi lắm. Code của bạn ở trên nằm ở module thì không chạy được và sai 2 dòng đầu.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        [A2] = [A1] + [A2]
    ElseIf Not Intersect(Target, Range("A2")) Is Nothing Then
        [A1] = [A1] + [A2]
    End If
    Application.EnableEvents = True
End Sub
 

File đính kèm

  • Sổ làm việc1.xlsm
    13.9 KB · Đọc: 18
Web KT
Back
Top Bottom