Giúp em về modified ngày tháng cho mỗi ô (2 người xem)

Liên hệ QC

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

duocsituan

Thành viên chính thức
Tham gia
10/4/09
Bài viết
52
Được thích
0
Em muốn tạo 1 cột Modified (giả sử là cột J), khi chỉnh sửa giá trị trong cột I thì cột J sẽ hiện ngày giờ modified vừa chỉnh sửa. Như vậy phải dùng VBA thế nào. Vì em chẳng biết viết câu lệnh này. Mong được các bác giúp đỡ! Em xin cảm ơn
 
Em muốn tạo 1 cột Modified (giả sử là cột J), khi chỉnh sửa giá trị trong cột I thì cột J sẽ hiện ngày giờ modified vừa chỉnh sửa. Như vậy phải dùng VBA thế nào. Vì em chẳng biết viết câu lệnh này. Mong được các bác giúp đỡ! Em xin cảm ơn
PHP:
Sub Co()
Dim Rng As Range, cll As Range
Set Rng = Range("B2:B5000")
For Each cll In Rng
    If cll.Value <> 0 Then
        cll.Offset(, 1).Value = Now
    End If
Next
End Sub
Bạn thử xem sao. Bạn gõ thử dữ liệu vào cột B thì cột C thay đổi, vì bạn ko đưa file lên , nên chỉ làm test thử thôi
Cài này thấy mọi người hay đưa vào sự kiện
 
Lần chỉnh sửa cuối:
Em muốn tạo 1 cột Modified (giả sử là cột J), khi chỉnh sửa giá trị trong cột I thì cột J sẽ hiện ngày giờ modified vừa chỉnh sửa. Như vậy phải dùng VBA thế nào. Vì em chẳng biết viết câu lệnh này. Mong được các bác giúp đỡ! Em xin cảm ơn
Dán code này vào sheet1 cửa sổ vba
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Left(Target.Address, 3) = "$I$" Then
Target.Offset(, 1).Value = Now()
End If
End Sub
 
Dán code này vào sheet1 cửa sổ vba
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Left(Target.Address, 3) = "$I$" Then
Target.Offset(, 1).Value = Now()
End If
End Sub

Cho ngắn lại miếng
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 9 Then End
Target.Offset(, 1).Value = Now()
End Sub
 
Em muốn tạo 1 cột Modified (giả sử là cột J), khi chỉnh sửa giá trị trong cột I thì cột J sẽ hiện ngày giờ modified vừa chỉnh sửa. Như vậy phải dùng VBA thế nào. Vì em chẳng biết viết câu lệnh này. Mong được các bác giúp đỡ! Em xin cảm ơn

@chủ thớt: ba cái này phải dựa vào tiêu đề cột chứ code cứng trên thứ tự cột (I, J) khó chịu bỏ bố. Lỡ về sau muốn thêm bớt cột mà quên sửa code thì dữ liệu trật bấy hết.
 
Chính xác là em đang bị tình trạng như vậy. Thực thi ngày thay đổi từ ô I9 trờ xuống, modified tương ứng là J9. Nhưng các dòng 8,7,6,... không muốn áp dụng nó vẫn chạy. hihi
 
Thử đặt một cái name xác định vùng cần làm việc.
 
Chính xác là em đang bị tình trạng như vậy. Thực thi ngày thay đổi từ ô I9 trờ xuống, modified tương ứng là J9. Nhưng các dòng 8,7,6,... không muốn áp dụng nó vẫn chạy. hihi
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 9 Then End
If Target.Row < 9 Then End
Target.Offset(, 1).Value = Now()
End Sub
 
Chính xác là em đang bị tình trạng như vậy. Thực thi ngày thay đổi từ ô I9 trờ xuống, modified tương ứng là J9. Nhưng các dòng 8,7,6,... không muốn áp dụng nó vẫn chạy. hihi
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    If Target.Column = 3 And Target.Row > 11 And Target.Row < 17 Then
        If Target.Rows.Count = 1 Then
            If Target(1, 1).Value <> "" Then
                Target.Offset(, 1).Value = 1
                Target.Offset(, 3).Value = WorksheetFunction.VLookup(Target.Value, Sheets("BangGia").Range("C2:E100"), 3, False)
                Target.Offset(, 30).Value = Date
                Target.Offset(, 31).Value = Now
            Else
                Target.Offset(, 1) = ""
                Target.Offset(, 3) = ""
                Target.Offset(, 30).ClearContents
                Target.Offset(, 31).ClearContents
            End If
        End If
    End If
    Application.ScreenUpdating = True
 End Sub
Bạn có thể dựa vào cái này mà sửa cho phù hợp với bài của bạn
 
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 9 Then End
If Target.Row < 9 Then End
Target.Offset(, 1).Value = Now()
End Sub

Sao khi dùng code này, mỗi khi xoá 1 dòng hay insert 1 dòng thì bảng tính đơ ra, phải ctrl S rồi tắt, mở lại. Nhưng tiếp tục delete row hay insert row là đơ tiếp. Mong các bạn chỉ bảo thêm
 
Sao khi dùng code này, mỗi khi xoá 1 dòng hay insert 1 dòng thì bảng tính đơ ra, phải ctrl S rồi tắt, mở lại. Nhưng tiếp tục delete row hay insert row là đơ tiếp. Mong các bạn chỉ bảo thêm
Bạn đã thử cái này chưa
PHP:
 If Target.Column = 3 And Target.Row > 11 And Target.Row < 17 Then
Bạn nên có file giả định, mình nghĩ sẽ xong ngay
 
Cụ thể là file như vầy
Đã chỉnh sửa nhiều lần nhưng cứ xóa 1 dòng hoặc 1 cột, thêm 1 dòng hoặc 1 cột thì máy đơ ra, không làm gì tiếp được nữa.
Mỗi khi tắt file, dù không chỉnh sửa gì cũng báo save file
Khi chỉnh sừa hoặc nhập số liệu thì không undo lại được. Hic
Mong được giúp đỡ, em xin cám ơn rất nhiều!
 

File đính kèm

Sao khi dùng code này, mỗi khi xoá 1 dòng hay insert 1 dòng thì bảng tính đơ ra, phải ctrl S rồi tắt, mở lại. Nhưng tiếp tục delete row hay insert row là đơ tiếp. Mong các bạn chỉ bảo thêm
Thêm 1 câu lệnh nữa đi.
If Target.Count > 1 Then End
 
Bạn bỏ các lệnh screenupdating đi sẽ hết đơ, lệnh này trong worksheet_change làm việc không chính xác.

Hết đơ rồi ạ
Nhưng còn vấn đề phụ, giúp em luôn với
Mỗi khi tắt file, dù không chỉnh sửa gì cũng báo save file
Khi chỉnh sừa hoặc nhập số liệu thì không undo lại được
 
Hết đơ rồi ạ
Nhưng còn vấn đề phụ, giúp em luôn với
Mỗi khi tắt file, dù không chỉnh sửa gì cũng báo save file
Khi chỉnh sừa hoặc nhập số liệu thì không undo lại được
PHP:
Public <........khai bao cac bien chua thong tin undo ..........>

Sub TongMax()
'< ..khai bao.......>

'doan luu lai thong tin cho Undo

' <..........Code cua sub...........>


'dang ky sub cho viec un do
Application.OnUndo "Undo tong max", "undotongmax"

End Sub
_________________________________________________________

'''   sub undo khoi phuc so lieu
Sub undotongmax()
    <........................>
End Sub
Cấu trúc Undo là Application.Undo sub
Nhưng phải thêm sub phụ, nói chung chả ngon ăn tẹo nào, hic
 
Hết đơ rồi ạ
Nhưng còn vấn đề phụ, giúp em luôn với
1. Mỗi khi tắt file, dù không chỉnh sửa gì cũng báo save file
2. Khi chỉnh sừa hoặc nhập số liệu thì không undo lại được
2. Đã dùng VBA thì không undo được.
1.
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not Me.Saved Then
        If Workbooks.Count = 1 Then
            Application.Quit
        Else
            Me.Close
        End If
    End If
End Sub
 
2. Đã dùng VBA thì không undo được.
1.
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not Me.Saved Then
        If Workbooks.Count = 1 Then
            Application.Quit
        Else
            Me.Close
        End If
    End If
End Sub
Nói chung vụ này cũng khó nhai lắm anh nhây, một là excel tắt or workbook đóng
 
Web KT

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

Back
Top Bottom