Xin hỏi công thức từ Excel chuyển sang VBA (1 người xem)

Liên hệ QC

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

susubambi

Thành viên mới
Tham gia
4/12/08
Bài viết
19
Được thích
4
Xin chào các bạn,
Mình thường sử dụng Excel để nhập liệu theo kiểu như file đính kèm dưới đây. Cột ngoài cùng là số thứ tự. Số thứ tự này có các số thứ tự con bên trong. Mình làm công thức như trong file và kéo công thức ấy xuống dưới cho đến khoảng hàng thứ mười mấy ngàn. Giờ mình muốn sử dụng VBA để tự động nhập số thứ tự con mỗi khi nhập số thứ tự ngoài cùng (số thứ tự ngoài cùng thì mình nhập tay vào vì số này không cố định). Nhờ các anh chị và các bạn chỉ cách chuyển công thức từ excel sang vba, mình xin cám ơn nhiều.
 

File đính kèm

Xin chào các bạn,
Mình thường sử dụng Excel để nhập liệu theo kiểu như file đính kèm dưới đây. Cột ngoài cùng là số thứ tự. Số thứ tự này có các số thứ tự con bên trong. Mình làm công thức như trong file và kéo công thức ấy xuống dưới cho đến khoảng hàng thứ mười mấy ngàn. Giờ mình muốn sử dụng VBA để tự động nhập số thứ tự con mỗi khi nhập số thứ tự ngoài cùng (số thứ tự ngoài cùng thì mình nhập tay vào vì số này không cố định). Nhờ các anh chị và các bạn chỉ cách chuyển công thức từ excel sang vba, mình xin cám ơn nhiều.

Tôi đã chuyển cthức của bạn ở cột B sang VBA
Vì cột A của bạn không theo một quy luật nào nên kg chuyển được
bạn xem Sheet2
-----------------
Em đang chập chững vào VBA, nhờ thầy cô & anh chị hướng dẫn thêm.
 

File đính kèm

Upvote 0
Cám ơn Hong.Van nhiều. Cho mình hỏi thêm là có thể làm thêm sao cho mỗi khi nhập số thứ tự ở cột 1 thì lập tức công thức được thực hiện ở cột 2 mà không cần phải nhấn nút STT được không ạ?
 
Upvote 0
A, mình làm được rồi, cám ơn Hong.Van nhiều
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
With Range("a1:a52666")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 2) = Date
If Target = Target.Offset(-1) Then Target.Offset(, 1) = Target.Offset(-1, 1) + 1 else Target.Offset(, 1) = 1
End If
End With
End Sub

Tuy nhiên, sau khi thử một hồi, mình nhận thấy phát sinh lỗi như sau:
Nếu nhập thủ công từng ô ở cột 1 thì cột 2 điền đúng, nhưng nếu copy paste ở cột 1 thì cột 2 luôn hiển thị số 1.
:D Lại bế tắc. Xin các bạn giúp giùm cám ơn nhiều.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin chào các bạn,
Mình thường sử dụng Excel để nhập liệu theo kiểu như file đính kèm dưới đây. Cột ngoài cùng là số thứ tự. Số thứ tự này có các số thứ tự con bên trong. Mình làm công thức như trong file và kéo công thức ấy xuống dưới cho đến khoảng hàng thứ mười mìấy ngàn. Giờ mình muốn sử dụng VBA để tự động nhập số thứ tự con mỗi khi nhập số thứ tự ngoài cùng (số thứ tự ngoài cùng thì mình nhập tay vào vì số này không cố định). Nhờ các anh chị và các bạn chỉ cách chuyển công thức từ excel sang vba, mình xin cám ơn nhiều.

Xem file của bạn thì tôi thấy, mục đích của bạn là đếm số liệu trùng tại cột A vậy bạn thử code này xem có đúng ý không ?
Mã:
Sub STT2()
Application.ScreenUpdating = False
  With Range([A1], [A50000].End(3)).Offset(, 1)
      .Value = "=COUNTIF(R1C1:RC[-1],RC[-1])"
      .Value = .Value
  End With
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Quá hay, cám ơn bạn TrungChinhs, vừa ý lắm. :D
Đúng là nhiều khi không biết phải diễn giải mình muốn cái gì nữa. :D
 
Upvote 0
Web KT

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

Back
Top Bottom