Hàm today

Liên hệ QC

ali3340tc

Thành viên chính thức
Tham gia
19/5/09
Bài viết
78
Được thích
16
Các bác pro cho tôi hỏi:

Khi tôi dùng hàm today() để lấy ngày tháng hiện tại thì OK đến hôm sau mở fỉle đó ra thì nó lại tự động update ngày. Bây giờ tôi muốn khi mở file ra thì nó ko tự động update ngày thì phải dùng hàm gì?
Ví dụ:
ở cột A là số thứ tự, cột B là ngày. Khi đánh số thứ tự vào cột A thì cột B tự động nhảy ngày. Đến hôm sau, khi đánh số thứ tự tiếp theo thì cột B sẽ nhảy ngày tháng hiện tại. còn các thứ tự trước thì vẫn theo những ngày trước.
 
Thì bạn không dùng hàm Today() nữa gõ trực tiệp bằng tay đi. Đôi khi hiểu được ý tưởng của tác giả còn khó hơn cả làm bài toán đó.
Bạn gửi file lên!
 
Cái này thì bạn copy lại và dán giá trị là được chứ gì. Còn không chuyển sang VBA
 
Các bác pro cho tôi hỏi:

Khi tôi dùng hàm today() để lấy ngày tháng hiện tại thì OK đến hôm sau mở fỉle đó ra thì nó lại tự động update ngày. Bây giờ tôi muốn khi mở file ra thì nó ko tự động update ngày thì phải dùng hàm gì?
Ví dụ:
ở cột A là số thứ tự, cột B là ngày. Khi đánh số thứ tự vào cột A thì cột B tự động nhảy ngày. Đến hôm sau, khi đánh số thứ tự tiếp theo thì cột B sẽ nhảy ngày tháng hiện tại. còn các thứ tự trước thì vẫn theo những ngày trước.
Thay vì gõ
Mã:
=Month(Today())
Bạn gõ như thế này:
Mã:
=Month({Ctrl+;})
{Ctrl+;} là gõ phím Ctrl; nhé
 
Các bác pro cho tôi hỏi:

Khi tôi dùng hàm today() để lấy ngày tháng hiện tại thì OK đến hôm sau mở fỉle đó ra thì nó lại tự động update ngày. Bây giờ tôi muốn khi mở file ra thì nó ko tự động update ngày thì phải dùng hàm gì?
Ví dụ:
ở cột A là số thứ tự, cột B là ngày. Khi đánh số thứ tự vào cột A thì cột B tự động nhảy ngày. Đến hôm sau, khi đánh số thứ tự tiếp theo thì cột B sẽ nhảy ngày tháng hiện tại. còn các thứ tự trước thì vẫn theo những ngày trước.
- Một là gõ bằng tay (dùng tổ hợp phím Ctrl + ;)
- Hai là dùng code VBA, nó sẽ tự động điền ngày tháng cho bạn
Bạn thích món nào đây?
 
Today

Bạn xem cách mình làm có như ý bạn không?+-+-+-+
 
Lần chỉnh sửa cuối:
Bạn chỉ cho mình cái code đi
Tạm cái này xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("A1:A100"), Target) Is Nothing Then
    With Target.Offset(, 1)
      .NumberFormat = "dd/mm/yyyy"
      .Value = Date
    End With
  End If
End Sub
Code có tác dụng từ cell A1 đến cell A100 ---> Nếu bạn có yêu cầu khác hãy tự sửa lại
 

File đính kèm

  • Tudongdienngaythang.xls
    18.5 KB · Đọc: 417
Trong cột A bạn đánh STT. VD A2 là 1, A3 là 2... B1=date(2009,8,28); B2=A2+$B$1 sau đó copy công thức là được.//**/
 
Tạm cái này xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("A1:A100"), Target) Is Nothing Then
    With Target.Offset(, 1)
      .NumberFormat = "dd/mm/yyyy"
      .Value = Date
    End With
  End If
End Sub
Code có tác dụng từ cell A1 đến cell A100 ---> Nếu bạn có yêu cầu khác hãy tự sửa lại


Tôi vừa thử và OK rồi. Cho tôi hỏi thêm 1 chút về code này: Hiện tại khi đánh số thứ tự ở cột A thì cột B sẽ xuất hiện ngày nhưng nếu xóa số thứ tự ở cột A thì cột B lại không tự xóa. Vậy phải thêm code như thế nào để tự xóa cột B khi xóa số ở cột A
 
Tôi vừa thử và OK rồi. Cho tôi hỏi thêm 1 chút về code này: Hiện tại khi đánh số thứ tự ở cột A thì cột B sẽ xuất hiện ngày nhưng nếu xóa số thứ tự ở cột A thì cột B lại không tự xóa. Vậy phải thêm code như thế nào để tự xóa cột B khi xóa số ở cột A
Tạm sửa thành vầy đi:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("A1:A100"), Target) Is Nothing Then
    With Target.Offset(, 1)
      .NumberFormat = "dd/mm/yyyy"
      .Value = IIf(Target = "", "", Date)
    End With
  End If
End Sub
Lưu ý: Code trên chỉ cho bạn nhập từng cell, nếu bạn copy nguyên vùng rồi paste vào cột A thì code sẽ báo lổi... Nếu có nhu cầu copy/paste luôn thì dùng cái này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Clls As Range
  If Not Intersect(Range("A1:A100"), Target) Is Nothing Then
    For Each Clls In Target
      With Clls.Offset(, 1)
        .NumberFormat = "dd/mm/yyyy"
        .Value = IIf(Clls = "", "", Date)
      End With
    Next
  End If
End Sub
 
Lần chỉnh sửa cuối:
Tạm cái này xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("A1:A100"), Target) Is Nothing Then
    With Target.Offset(, 1)
      .NumberFormat = "dd/mm/yyyy"
      .Value = Date
    End With
  End If
End Sub
Code có tác dụng từ cell A1 đến cell A100 ---> Nếu bạn có yêu cầu khác hãy tự sửa lại
@ndu96081631: mình muốn nếu ô ở cột B đã có dữ liệu rồi, thì khi click vào ô tương ứng ở cột A chương trình VBA không cập nhật thành today() nữa (tức là không làm gì cả)


Xin lỗi phải hỏi vì mình không biết gì về VBA, chỉ biết dùng thôi.
 
@ndu96081631: mình muốn nếu ô ở cột B đã có dữ liệu rồi, thì khi click vào ô tương ứng ở cột A chương trình VBA không cập nhật thành today() nữa (tức là không làm gì cả)


Xin lỗi phải hỏi vì mình không biết gì về VBA, chỉ biết dùng thôi.
Thì thêm cái IF vào
If cột B = rổng thì
chạy code này
End If

Đại khái như sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Clls As Range
  If Not Intersect(Range("A1:A100"), Target) Is Nothing Then
    For Each Clls In Target
      With Clls.Offset(, 1)
        If .Value = "" Then
          .NumberFormat = "dd/mm/yyyy"
          .Value = Date
        End If
      End With
    Next
  End If
End Sub
 
Web KT
Back
Top Bottom