Cách cố định ngày tháng khi dùng hàm thời gian ? (5 người xem)

Liên hệ QC

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

trungttc

Thành viên mới
Tham gia
9/4/08
Bài viết
1
Được thích
0
Bạn nào biết chỉ giúp mình cách cố định ngày tháng khi dùng hàm thời gian.
VD: dùng hàm thời gian để đưa "Hà nội, ngày 24 tháng 04 năm 2008" vào văn bản, nhưng ngày mai mở file ra nó sẽ tự động nhảy thành "HN, ngày 25 tháng 05 năm 2008". Các bạn chỉ giùm làm thế nào khi thời gian sau tôi mở file nó vẫn là ngày 24/4/2008. Cảm ơn các bạn nhiều. Nếu bạn nào biết làm cả trong word thì chỉ giùm luôn.
 
Có lẽ bạn đã dùng hàm Today() trong file nên mới có sự cập nhật ko cần thiết... Trong trường hợp này ta vẩn có thể tạo ngày đúng bằng Today mà vẫn ko cho nó cập nhật:
Quy trình như sau:
1> Format Cells tạo mẩu trước: Bấm Ctrl + ! vào cell, chọn tab Number, mục Custom bạn gõ: "Hà Nội, ngày "dd" tháng "mm" năm "yyyy
2> Nạp ngày tháng hiện hành: Khi cần gõ Today vào cell này bạn chỉ cần bấm tổ hợp phím Ctrl + ;
Như vậy cell nhập liệu vừa lấy dc ngày tháng hiện hành nhưng do ko xài hàm nên sẽ ko có sự cập nhật...
ANH TUẤN
 
Đại loại thế này
nhập ố A1 là 24/04/2008
nhấp chuột A1 vào format -> cell -> thẻ number -> custum -> địng dạng "Hà nội, ngày "dd" tháng "mm" năm "yyyy
 
Đại loại thế này
nhập ố A1 là 24/04/2008
nhấp chuột A1 vào format -> cell -> thẻ number -> custum -> địng dạng "Hà nội, ngày "dd" tháng "mm" năm "yyyy
Đúng là vậy! Nhưng tôi đoán tác giã muốn lấy ngày tháng năm là chính ngày HÔM NAY.. vì thế mà có thể tác giã đã dùng đến hàm TODAY.. và đương nhiên nó sẽ cập nhật đến những ngày sau đó.. và đây là điều mà tác giã ko muốn
Ta có thể nhập TODAY 1 cách đơn giãn bằng tổ hợp phím Ctrl + ; đây chỉ là Value và sẽ ko bị cập nhật
 
Đúng roài, mình vẫn thường hay làm như cách của anhtuan1066

Ta vẫn có thể tạo ngày đúng bằng Today mà vẫn ko cho nó cập nhật:
Quy trình như sau:
  1. Format Cells tạo mẩu trước:
    • Chọn cell Cần chèn ngày tháng (đánh " Ctrl + ; " để dễ nhớ)
    • Format \ cell (Ctrl+1)
    • chọn tab Number, mục Custom
    • Trong khung Type gõ: "..............., ngày "dd" tháng "mm" năm "yyyy
  2. Nạp ngày tháng hiện hành:
    • Khi cần gõ Today vào cell này bạn chỉ cần bấm tổ hợp phím Ctrl + ;
Khi đó lấy được ngày tháng hiện hành nhưng do ko xài hàm nên sẽ ko có sự cập nhật... ở những ngày mở file lần sau
 
Em chào các anh!
Các anh cho em hỏi một chút. Bây giờ em đang quản lý sổ sách em muốn là khi mình nhập dữ liệu ngày hôm nay có vào thì nó tự động điền ngày tháng và ta không nhập thì ngày tháng không được điền vào. Khi ngày tháng điền vào rồi thì sẽ cố định ngày hôm sau không bị thay đổi nữa.
Các anh ai biết chỉ giúp em với. Em cám ơn các anh nhiều !
 
Ý mình cũng muốn hỏi như bạn tkc1102, nói rõ ra như thế này:
Dữ liệu cần nhập có các cột sau: Cột A: Thứ tự; Cột B Ngày tháng; Cột C là mặt hàng, Cột D là giá bán, Cột E là thành tiền. Hàng ngày mình nhập dữ liệu vào các cột A, C, D, E, riêng cột B thì tự động điền ngày tháng nhập dữ liệu.
Vậy ở cột B phải đặt hàm gì?
 
Lần chỉnh sửa cuối:
ý mình cũng muốn hỏi như bạn tkc1102, nói rõ ra như thế này:
Dữ liệu cần nhập có các cột sau: Cột a: Thứ tự; cột b ngày tháng; cột c là mặt hàng, cột d là giá bán, cột e là thành tiền. Hàng ngày mình nhập dữ liệu vào các cột a, c, d, e, riêng cột b thì tự động điền ngày tháng nhập dữ liệu.
Vậy ở cột b phải đặt hàm gì?

private sub worksheet_change(byval target as range)
on error resume next
if not intersect(target, range("a:a")) is nothing then
if activecell.offset(-1) <> "" then activecell.offset(-1, 1) = date
end if
end sub

đoạn code trên chỉ xuất hiện ngày tháng khi enter, còn khi nhấn phím tab thì không xuất hiện. Em mong các pro ra tay giúp để code hoàn chỉnh ạ!
 
Không có pro nào cứu giúp được bọn em ạ?
 
đoạn code trên chỉ xuất hiện ngày tháng khi enter, còn khi nhấn phím tab thì không xuất hiện. Em mong các pro ra tay giúp để code hoàn chỉnh ạ!
Muốn thế nào thì gởi file lên, nói không không có giúp cũng chẳng xài được
 
đoạn code trên chỉ xuất hiện ngày tháng khi enter, còn khi nhấn phím tab thì không xuất hiện. Em mong các pro ra tay giúp để code hoàn chỉnh ạ!

Nếu tôi hiểu được lôgíc thì khi xóa dữ liệu ở cột A thì cũng phải xóa ngày tháng ở cột B. Thường là thế. Code bạn đưa ra không làm được chuyện này. Ngoài ra code ấy không cho phép dán hàng loạt dữ liệu từ đâu đó vào cột A.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell_ As Range
    Set rng = Intersect(Target, Range("a:a"))
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        For Each cell_ In rng
            If cell_.Value <> "" Then
                cell_.Offset(, 1).Value = Date
            Else
                cell_.Offset(, 1).Value = ""
            End If
        Next cell_
        Application.EnableEvents = True
    End If
End Sub
 
Nếu tôi hiểu được lôgíc thì khi xóa dữ liệu ở cột A thì cũng phải xóa ngày tháng ở cột B. Thường là thế. Code bạn đưa ra không làm được chuyện này. Ngoài ra code ấy không cho phép dán hàng loạt dữ liệu từ đâu đó vào cột A.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell_ As Range
    Set rng = Intersect(Target, Range("a:a"))
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        For Each cell_ In rng
            If cell_.Value <> "" Then
                cell_.Offset(, 1).Value = Date
            Else
                cell_.Offset(, 1).Value = ""
            End If
        Next cell_
        Application.EnableEvents = True
    End If
End Sub

code quá chuẩn ạ. Em cảm ơn bác rất nhiều! @$@!^%
 
Nếu tôi hiểu được lôgíc thì khi xóa dữ liệu ở cột A thì cũng phải xóa ngày tháng ở cột B. Thường là thế. Code bạn đưa ra không làm được chuyện này. Ngoài ra code ấy không cho phép dán hàng loạt dữ liệu từ đâu đó vào cột A.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell_ As Range
    Set rng = Intersect(Target, Range("a:a"))
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        For Each cell_ In rng
            If cell_.Value <> "" Then
                cell_.Offset(, 1).Value = Date
            Else
                cell_.Offset(, 1).Value = ""
            End If
        Next cell_
        Application.EnableEvents = True
    End If
End Sub
Em có nhu cầu muốn điền dữ liệu vào cột A thì cột B hiện ngày, làm theo code của bác hiện quá ngon nhưng muốn có thêm nhu cầu nữa là điền cột H thị cột I hiện ngày. Em copy code của bác ra làm 2 cái, 1 cái để cột chuẩn là A, 1 cái để H thì bị báo lỗi cái ở dưới. Bác có cách nào giúp em với
 
Em có nhu cầu muốn điền dữ liệu vào cột A thì cột B hiện ngày, làm theo code của bác hiện quá ngon nhưng muốn có thêm nhu cầu nữa là điền cột H thị cột I hiện ngày. Em copy code của bác ra làm 2 cái, 1 cái để cột chuẩn là A, 1 cái để H thì bị báo lỗi cái ở dưới. Bác có cách nào giúp em với
Nếu thế tạm sửa thế này (code phần chính vẫn giữ nguyên tác)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, cell_ As Range
    Set rng = Intersect(Target, Union(Range("a:a"), Range("h:h")))
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        For Each cell_ In rng
            If cell_.Value <> "" Then
                cell_.Offset(, 1).Value = Date
            Else
                cell_.Offset(, 1).Value = ""
            End If
        Next cell_
        Application.EnableEvents = True
    End If
End Sub
 
Nếu thế tạm sửa thế này (code phần chính vẫn giữ nguyên tác)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, cell_ As Range
    Set rng = Intersect(Target, Union(Range("a:a"), Range("h:h")))
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        For Each cell_ In rng
            If cell_.Value <> "" Then
                cell_.Offset(, 1).Value = Date
            Else
                cell_.Offset(, 1).Value = ""
            End If
        Next cell_
        Application.EnableEvents = True
    End If
End Sub
cảm ơn bác nhưng sửa vậy vẫn ko thay đổi gì, cột I vẫn ko nhảy ngày khi cột H đc điền. Bác còn cao kiến gì giúp em với
Bài đã được tự động gộp:

Nếu thế tạm sửa thế này (code phần chính vẫn giữ nguyên tác)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, cell_ As Range
    Set rng = Intersect(Target, Union(Range("a:a"), Range("h:h")))
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        For Each cell_ In rng
            If cell_.Value <> "" Then
                cell_.Offset(, 1).Value = Date
            Else
                cell_.Offset(, 1).Value = ""
            End If
        Next cell_
        Application.EnableEvents = True
    End If
End Sub
ah, em thêm vào nhầm sheet. hiện ngon rồi bác ạ. cảm ơn bác nhiều
 
cảm ơn bác nhưng sửa vậy vẫn ko thay đổi gì, cột I vẫn ko nhảy ngày khi cột H đc điền. Bác còn cao kiến gì giúp em với
Bạn thử chưa, tôi đã test: nhập cột H cột I sẽ ghi lại thời điểm đó, xóa cột H thì kết quả ô tương cứng cột I bị xóa đi
Nhớ đặt sub đó vào trang Sheet-code
Bài đã được tự động gộp:

cảm ơn bác nhưng sửa vậy vẫn ko thay đổi gì, cột I vẫn ko nhảy ngày khi cột H đc điền. Bác còn cao kiến gì giúp em với
Bài đã được tự động gộp:


ah, em thêm vào nhầm sheet. hiện ngon rồi bác ạ. cảm ơn bác nhiều
Thế là theo ngôn ngữ mạng trẻ hiện này là: tay nhanh hơn ... mọi thứ rồi, bình tâm và kiểm tra cẩn thận trước khi kết luận
 
Lần chỉnh sửa cuối:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell_ As Range
Set rng = Intersect(Target, Union(Range("a:a"), Range("h:h")))
If Not rng Is Nothing Then
Application.EnableEvents = False
For Each cell_ In rng
If cell_.Value <> "" Then
cell_.Offset(, 1).Value = Date
Else
cell_.Offset(, 1).Value = ""
End If
Next cell_
Application.EnableEvents = True
End If
End Sub



-> Cho mình hỏi, mình muốn code này chạy được trên GOOGLE DOC (sheet excel) thì làm ntn nhĩ, mình có copy vào mục code Macro nhưng nó báo lỗi
 

File đính kèm

  • ex.png
    ex.png
    27 KB · Đọc: 8
Nếu tôi hiểu được lôgíc thì khi xóa dữ liệu ở cột A thì cũng phải xóa ngày tháng ở cột B. Thường là thế. Code bạn đưa ra không làm được chuyện này. Ngoài ra code ấy không cho phép dán hàng loạt dữ liệu từ đâu đó vào cột A.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell_ As Range
    Set rng = Intersect(Target, Range("a:a"))
    If Not rng Is Nothing Then
        Application.EnableEvents = False
        For Each cell_ In rng
            If cell_.Value <> "" Then
                cell_.Offset(, 1).Value = Date
            Else
                cell_.Offset(, 1).Value = ""
            End If
        Next cell_
        Application.EnableEvents = True
    End If
End Sub
Bây giờ em muốn nhập liệu 1 cột bất kỳ, và hiển thị ngày tháng ở 1 cột bất kỳ thì code sửa sao ạ
 
Web KT

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

Back
Top Bottom