Vướng mắc về hàm lấy tên đăng nhập máy tính ạ (1 người xem)

  • Thread starter Thread starter 198zxc
  • Ngày gửi Ngày gửi
Liên hệ QC

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

198zxc

Thành viên hoạt động
Tham gia
26/6/12
Bài viết
161
Được thích
20
Em đang có 1 file excel làm việc theo các nhóm khác nhau, mỗi nhóm phụ trách 1 loại số liệu riêng, để tránh nhầm lẫn thì em muốn copy file excel này vào máy tính của ai thì chỉ hiển thị số mà người đó phụ trách để tránh nhầm lẫn bằng cách lọc theo tên đăng nhập máy tính đó, nhưng em loay hoay mãi không làm sao lấy được tên ấy vào file excel. Mong các anh chị chỉ giúp ạ, em cảm ơn nhiều!
 

File đính kèm

Bạn thử Macro này xem
Mã:
Function GetUserName() As String
    GetUserName = Environ("USERNAME")
End Function
 
Lang thang trên mạng có được hàm này
Mã:
=MID(INFO("DIRECTORY"),10,LEN(INFO("DIRECTORY"))-LEN(MID(INFO("DIRECTORY"),FIND("\",INFO("DIRECTORY"),10),1000))-LEN("C:\Users\"))
Còn việc cảnh báo hay gì đó thì tùy bạn áp dụng thôi
 
Lang thang trên mạng có được hàm này
Mã:
=MID(INFO("DIRECTORY"),10,LEN(INFO("DIRECTORY"))-LEN(MID(INFO("DIRECTORY"),FIND("\",INFO("DIRECTORY"),10),1000))-LEN("C:\Users\"))
Còn việc cảnh báo hay gì đó thì tùy bạn áp dụng thôi
Hàm INFO độ tin cậy không cao, có lúc,đúng, có lúc không, đây là kinh nghiệm thực tế của mình
 
Lang thang trên mạng có được hàm này
Mã:
=MID(INFO("DIRECTORY"),10,LEN(INFO("DIRECTORY"))-LEN(MID(INFO("DIRECTORY"),FIND("\",INFO("DIRECTORY"),10),1000))-LEN("C:\Users\"))
Còn việc cảnh báo hay gì đó thì tùy bạn áp dụng thôi
Em đã làm được, cảm ơn anh ạ
Bài đã được tự động gộp:

Sau khi đưa code vào module thì ra ô nào đó nhập công thức =GetUserName() là được
Sau khi đưa code vào module thì ra ô nào đó nhập công thức =GetUserName() là được
Em làm thử mà nó lại báo lỗi #name ạ :(
 
Em làm thử mà nó lại báo lỗi #name ạ :(
Đầu tiên lưu file dưới dạng xlsm bằng cách vào File -> Save as -> Chỗ Save as type làm như hình rồi bấm nút Save (Nếu file đã ở dạng xlsm thì không cần thực hiện nữa)

1.png

Ở file mới lưu nhấn Alt+F11, cửa sổ mới chuột phải vào ThisWorkbook -> Insert -> Chọn Module

1.png

Copy 3 dòng code của mình ở trên dán vào cửa sổ của Module1 như hình dưới

1.png

Lưu nó lại, thoát cửa sổ VBA, ra ô nào đó của Excel gõ =GetUserName() là được

1.png

Mình viết chi tiết như vậy vì muốn góp ý với bạn nên tìm hiểu về VBA. Ít nhất cũng biết tạo file xlsm, tạo Module và đưa code vào, hiểu Function, Sub là gì và cách để chạy nó. Vì trên diễn đàn này (và cả các nhóm khác) sẽ nhiều khi bạn được hỗ trợ bằng VBA, nếu không biết sẽ rất bất tiện cho bạn, thậm chí gây ức chế cho người hỗ trợ vì đã mất công viết ra nhưng không được bạn tiếp nhận đúng cách
 
Lần chỉnh sửa cuối:
Em cảm ơn anh nhiều ạ, trước vào thời điểm 2012 em cũng đã dùng hàm vba đơn giản của các anh chị trên diễn đàn nhưng bẵng đi 1 thời gian dài hơn chục năm cả cái giao diện office nó cũng thay đổi nên bị bỡ ngỡ quá. Em cảm ơn anh nhiều lắm ạ
Bài đã được tự động gộp:

Đầu tiên lưu file dưới dạng xlsm bằng cách vào File -> Save as -> Chỗ Save as type làm như hình rồi bấm nút Save (Nếu file đã ở dạng xlsm thì không cần thực hiện nữa)

View attachment 307872

Ở file mới lưu nhấn Alt+F11, cửa sổ mới chuột phải vào ThisWorkbook -> Insert -> Chọn Module

View attachment 307873

Copy 3 dòng code của mình ở trên dán vào cửa sổ của Module1 như hình dưới

View attachment 307874

Lưu nó lại, thoát cửa sổ VBA, ra ô nào đó của Excel gõ =GetUserName() là được

View attachment 307875

Mình viết chi tiết như vậy vì muốn góp ý với bạn nên tìm hiểu về VBA. Ít nhất cũng biết tạo file xlsm, tạo Module và đưa code vào, hiểu Function, Sub là gì và cách để chạy nó. Vì trên diễn đàn này (và cả các nhóm khác) sẽ nhiều khi bạn được hỗ trợ bằng VBA, nếu không biết sẽ rất bất tiện cho bạn, thậm chí gây ức chế cho người hỗ trợ vì đã mất công viết ra nhưng không được bạn tiếp nhận đúng cách
Em cảm ơn anh nhiều ạ, trước vào thời điểm 2012 em cũng đã dùng hàm vba đơn giản của các anh chị trên diễn đàn nhưng bẵng đi 1 thời gian dài hơn chục năm cả cái giao diện office nó cũng thay đổi nên bị bỡ ngỡ quá. Em cảm ơn anh nhiều lắm ạ
 
Đầu tiên lưu file dưới dạng xlsm bằng cách vào File -> Save as -> Chỗ Save as type làm như hình rồi bấm nút Save (Nếu file đã ở dạng xlsm thì không cần thực hiện nữa)

View attachment 307872

Ở file mới lưu nhấn Alt+F11, cửa sổ mới chuột phải vào ThisWorkbook -> Insert -> Chọn Module

View attachment 307873

Copy 3 dòng code của mình ở trên dán vào cửa sổ của Module1 như hình dưới

View attachment 307874

Lưu nó lại, thoát cửa sổ VBA, ra ô nào đó của Excel gõ =GetUserName() là được

View attachment 307875

Mình viết chi tiết như vậy vì muốn góp ý với bạn nên tìm hiểu về VBA. Ít nhất cũng biết tạo file xlsm, tạo Module và đưa code vào, hiểu Function, Sub là gì và cách để chạy nó. Vì trên diễn đàn này (và cả các nhóm khác) sẽ nhiều khi bạn được hỗ trợ bằng VBA, nếu không biết sẽ rất bất tiện cho bạn, thậm chí gây ức chế cho người hỗ trợ vì đã mất công viết ra nhưng không được bạn tiếp nhận đúng cách
Anh cho em hỏi là có cách nào để khi mở file excel lên thì hàm GetuserName() sẽ tự chạy luôn không ạ, giờ em cứ phải kích vào ô đấy rồi enter thì mới nhảy ra tên ạ
 
Vào đây và dùng vba từ 2012 mà đến giờ vẫn không học để biết và áp dụng được thì ... phí quá.
Cái này đối với dân thường thì hơi khó chứ không dễ như bạn tưởng.
Một số hàm, nhất là loại hàm "environment" không tự cập nhật lên bảng tính. Nếu bạn dùng như bài #4 chỉ dẫn thì nên thêm một hàm phụ để ép công thức thành volatile.
Ép công thức volatile như thế nào thì ở đây có nhiều bài rồi. Chịu khó tìm.
 
Cái này đối với dân thường thì hơi khó chứ không dễ như bạn tưởng.
Một số hàm, nhất là loại hàm "environment" không tự cập nhật lên bảng tính. Nếu bạn dùng như bài #4 chỉ dẫn thì nên thêm một hàm phụ để ép công thức thành volatile.
Ép công thức volatile như thế nào thì ở đây có nhiều bài rồi. Chịu khó tìm.
Em thấy đến thời điểm này thì bạn ấy vào đây cũng được 13 năm rồi, có đi học Tiến sĩ cũng phải được mấy bằng rồi anh nhỉ.
 
Chỉ cần đủ dùng cho công việc của bản thân là tốt lắm rồi.
Vì nhu cầu của em chỉ là những hàm đơn giản nên nếu có tìm hiểu xong thì cũng quên ấy ạ, như bẵng đi 5 6 năm không dùng macro là em quên hẳn luôn
Bài đã được tự động gộp:

Cái này đối với dân thường thì hơi khó chứ không dễ như bạn tưởng.
Một số hàm, nhất là loại hàm "environment" không tự cập nhật lên bảng tính. Nếu bạn dùng như bài #4 chỉ dẫn thì nên thêm một hàm phụ để ép công thức thành volatile.
Ép công thức volatile như thế nào thì ở đây có nhiều bài rồi. Chịu khó tìm.
Vâng ạ, em cảm ơn nhiều ạ
 
Vì nhu cầu của em chỉ là những hàm đơn giản nên nếu có tìm hiểu xong thì cũng quên ấy ạ, như bẵng đi 5 6 năm không dùng macro là em quên hẳn luôn
Mình thấy công việc của bạn cũng dùng nhiều về excel, vậy mà không chịu khó dành thời gian (ít nhất bạn cũng có hơn mười năm) cải thiện kỹ năng giúp cho công việc đỡ vất vả thì đáng tiếc thay cho bạn.
 
Mình thấy công việc của bạn cũng dùng nhiều về excel, vậy mà không chịu khó dành thời gian (ít nhất bạn cũng có hơn mười năm) cải thiện kỹ năng giúp cho công việc đỡ vất vả thì đáng tiếc thay cho bạn.
Ở bài #9 thớt có nói rằng "bẵng đi 1 thời gian dài hơn chục năm cả cái giao diện office nó cũng thay đổi". Chứng tỏ rằng hơn 10 năm qua làm cái gì đó chứ không phải Excel.

Vả lại, người hỏi bài #10 ở đây bị vướng mắc ở chỗ mà đương sự chưa biết tới - không phải do biết rồi nhưng quên.
 
Ở bài #9 thớt có nói rằng "bẵng đi 1 thời gian dài hơn chục năm cả cái giao diện office nó cũng thay đổi". Chứng tỏ rằng hơn 10 năm qua làm cái gì đó chứ không phải Excel.

Vả lại, người hỏi bài #10 ở đây bị vướng mắc ở chỗ mà đương sự chưa biết tới - không phải do biết rồi nhưng quên.
Ý em nói là giao diện ở cái macro ấy ạ, vì lâu rồi em không dùng đến nên mở ra còn chả biết add đoạn mã vào đâu, thử mấy kiểu vẫn ko thấy chạy may nhờ mọi người bảo giúp ấy ạ ( mà trước đây em dùng mỗi macro cái đánh dấu màu ngang dọc khi con trỏ chuột di chuyển cũng do 1 anh chị trên này bảo để dễ nhìn, mà cái ấy thêm đoạn mã cái là nó có tác dụng luôn, chứ ko làm được cái gì cao siêu cả). Công việc của em dùng thường xuyên excel nhưng chỉ là những cái đơn giản. Mong các anh chị chỉ bảo thêm ạ
 
Lần chỉnh sửa cuối:
Anh cho em hỏi là có cách nào để khi mở file excel lên thì hàm GetuserName() sẽ tự chạy luôn không ạ, giờ em cứ phải kích vào ô đấy rồi enter thì mới nhảy ra tên ạ
Vẫn File đó, trong cửa sổ VBA, click đúp vào ThisWorkbook, dán đoạn code bên dưới vào cửa sổ bên phải
Mã:
Private Sub Workbook_Open()
    Sheets("Sheet1").Range("A1").Value = GetUserName()
End Sub

Thay Sheet1 thành tên Sheet bạn muốn(Đừng dùng tên Sheet là tiếng Việt có dấu), A1 thành ô bạn muốn điền công thức GetUserName() trong Sheet đó
 
Web KT

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

Back
Top Bottom