tuananhya2
Thành viên mới
![](/diendan/data/PhoToDanhHieu/gold.gif)
- Tham gia
- 18/8/12
- Bài viết
- 8
- Được thích
- 0
Co ai chỉ dùm cách tạo pass marco với
Cho em hỏi có cách nào khi người dùng save file, thì sẽ tự động chạy 1 macro mình đã viết sẵn không. Tưng tự như "Sub Auto open" khi file được mở ra sẽ chạy 1 macro đã viết sẵn. Thanks
Nếu bạn tìm được cách nào đó mà bằng tay làm được thao tác gán comment 1 lượt thì code sẽ làm đượcCho mình hỏi một vấn đề như sau :
- Mình có một mảng Arr chứa các thông tin --> bh mình muốn đưa toàn bộ dữ liệu mảng này xuống vùng [A1 :A1000] dưới dạng comment
---> có cách nào không dùng vòng lặp for để thực hiện việc trên không
Cho em hỏi là trong excel có lệnh nào mà gán 1 nhát xuống sheet hết các comment kiểu như là [A1:A1000] = Arr không ?![]()
Vậy thì tại cell bất kỳ của cột B tạo 1 sự kiện change để kích hoạt mở userform. Rồi trong userform tiếp tục gán sự kiện đóng form và chuyển kết quả đến cell cần đến.mình đang tập viết những ứng dụng nhỏ phục vu cho công việc nhưng găp những vướng mắc nhờ mọi người giúp đỡ, mình nói qua những cái mình đã làm
1. Lập được uerform (đã làm được)
2. Bây giờ mình muốn từ 1 cell bất kỳ của cột đã định trước cột (cột B) chỉ khi nào ấn ENTER là gọi userform lên làm việc (form này có listbox chứa sắn dữ liệu) bây giờ mình muốn là chọn xong dữ liệu thì form tắt đồng thời dữ liệu được điền vào cell vừa rồi mình ấn ENTER.
Cám ơn bạn vấn đề là ở chổ này tại ô B3 ấn ENTER sau đó lại thay kết quả vào ô B3 lúc đó sự kiện change sẽ lặp lại userform lại load lên mình thấy không ổnVậy thì tại cell bất kỳ của cột B tạo 1 sự kiện change để kích hoạt mở userform. Rồi trong userform tiếp tục gán sự kiện đóng form và chuyển kết quả đến cell cần đến.
Khi dùng sự kiện change thì phải biết sử dụng câu lệnh Application.EnableEvents=False để khống chế lỗi vòng lặp vô tận.Cám ơn bạn vấn đề là ở chổ này tại ô B3 ấn ENTER sau đó lại thay kết quả vào ô B3 lúc đó sự kiện change sẽ lặp lại userform lại load lên mình thấy không ổn
mình đang vướng mắc
1. làm sao xác định sự kiện ấn ENTER
2. Trả về dòng con trỏ đang đứng để đưa thông tin vào
Cám ơn bạn vấn đề là ở chổ này tại ô B3 ấn ENTER sau đó lại thay kết quả vào ô B3 lúc đó sự kiện change sẽ lặp lại userform lại load lên mình thấy không ổn
mình đang vướng mắc
1. làm sao xác định sự kiện ấn ENTER
2. Trả về dòng con trỏ đang đứng để đưa thông tin vào
Sub EventEnable()
Application.OnKey "~", "ShowForm"
End Sub
Sub EventDisable()
Application.OnKey "~", ""
End Sub
Sub ShowForm()
UserForm1.Show
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
EventEnable
Else
EventDisable
End If
End Sub
Cám ơn Thầy1> Code cho Module:
2> Code cho sự kiện SelectionChange (trên sheet)Mã:Sub EventEnable() Application.OnKey "~", "ShowForm" End Sub Sub EventDisable() Application.OnKey "~", "" End Sub Sub ShowForm() UserForm1.Show End Sub
Làm đại, chưa biết trúng không! Bạn kiểm tra xemMã:Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$B$3" Then EventEnable Else EventDisable End If End Sub
-------------------
Phần gán dữ liệu từ UserForm xuống, bạn tự làm nhé
làm theo cách của bạn mình đã làm được nhưng lại phát sinh lỗi khi xóa dữ liệu userform lại bị load lênKhi dùng sự kiện change thì phải biết sử dụng câu lệnh Application.EnableEvents=False để khống chế lỗi vòng lặp vô tận.
1> Code cho Module:
2> Code cho sự kiện SelectionChange (trên sheet)Mã:Sub EventEnable() Application.OnKey "~", "ShowForm" End Sub Sub EventDisable() Application.OnKey "~", "" End Sub Sub ShowForm() UserForm1.Show End Sub
Làm đại, chưa biết trúng không! Bạn kiểm tra xemMã:Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$B$3" Then EventEnable Else EventDisable End If End Sub
-------------------
Phần gán dữ liệu từ UserForm xuống, bạn tự làm nhé
Xài thử Sub này cho cái Button của bạn coi saoChào các anh chị giaiphapexcel,
em có vấn đề nhỏ cần nhờ anh chị giải quyết giúp. Anh chị xem ở file em gửi kèm, bây h em muốn khi mình chọn mã số NV xong click vào button thì số công nhân viên đó được cộng thêm 1 đúng vào dòng đó ở bên bảng dữ liệu.
giúp em với nhé!
Public Sub GPE()
Application.ScreenUpdating = False
Dim Rng As Range, Cll As Range, Tem As String
Tem = UCase([C3])
With Sheets("S2")
Set Rng = .Range(.[A4], .[A65000].End(xlUp))
For Each Cll In Rng
If UCase(Cll) = Tem Then
Cll.Offset(, 2).Value = Cll.Offset(, 2).Value + 1
Exit For
End If
Next
End With
Set Rng = Nothing
Application.ScreenUpdating = True
End Sub
Cảm ơn nhapmon đã giúp đỡ nhưng mà chưa được bạn ạ!
vd công của nv1 đang là 7 thì nếu chuyển sáng nv2 nó cộng luôn lên bằng 8ý mình là muốn cộng thêm công cho mỗi NV riêng biệt không liên quan đến nhau, nhờ bạn giúp.
Cảm ơn nhapmon đã giúp đỡ nhưng mà chưa được bạn ạ!
vd công của nv1 đang là 7 thì nếu chuyển sáng nv2 nó cộng luôn lên bằng 8ý mình là muốn cộng thêm công cho mỗi NV riêng biệt không liên quan đến nhau, nhờ bạn giúp.
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2