Các bác có cách nào nạp dữ liệu từ Form được gọi lên bằng hàm Function tự tạo được Kô

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

boong

Thành viên thường trực
Tham gia
11/1/08
Bài viết
285
Được thích
266
Chào các bác, em tạo một Function có tên là NameAdmin() với lệnh là Name.Show. Khi From Name được mở lên thì có ô Textbox1 để nhập tên vào, rồi nhấn OK, nhưng sao nó lại không chịu điền dữ liệu từ trong Textbox1 vào vậy. Xin chỉ em cách khắc phục với? +-+-+-+ +-+-+-+
 
Lần chỉnh sửa cuối:
Bạn muốn điền dữ liệu từ textbox1 vào đâu cũng phải có 1 vài dòng lệnh mới được. Trong cửa sổ design của form, double click vào textbox1 bạn sẽ được:
Sub textbox1_change()

End sub

BẠn phải gõ 1 câu lệnh gán giá trị textbox1 vào cái bạn muốn. Câu lệnh này nằm giữa 2 dòng mới hiện ra.
Thí dụ bạn muốn gán vào cell A1:
range("sheet1!A1").value = me.textbox1.value

Hoặc bạn muốn chỉ khi click OK mới gán, thì cho câu lệnh trên vào trong đoạn code của
Sub commandbutton1_click
. . .
End sub
 
Cảm ơn anh đã viết lời hướng dẫn, nhưng vấn đề vẩn chưa được giải quyết. Ở đây em muốn gọi Form bằng dòng lệnh Function do mình tự để thực hiện những việc khác mà người ta ích sử dụng như đổi User Name và Pass của Admin nên??? Pass nằm ở ô Sheet1!A1. Vậy có cách nào tạo một Function có thể thay đổi dữ liệu ở ô trên ngay trên Sheet khác và tự xóa cái Function đó sau khi thay đổi xong luôn? Xin hướng dẫn giùm? Em chỉ biết cách sữa nội dung trên From thôi nên mới bị bí đó. Xin đừng chê cười nghe. Mong nhận hồi đáp.....
 
Lần chỉnh sửa cuối:
Trước hết bạn cần phân biệt Function và Macro (Sub):
Function (hàm) là 1 đọan code trả về kết quả của sự tính toán dựa trên tham số cho vào ban đầu. Cũng như hàm của Excel: sum(A1:A2) cho 1 giá trị là tổng A1 + A2, giá trị này gán cho cell hiện thời. Function tự tạo bằng VBA cũng thế.
macro là 1 đoạn code thực hiện 1 số lệnh của VBA, có thể có tính toán hoặc không, thực hiện xong là thôi, kết quả có thể đưa ra màn hình có thể không, nếu không tính toán thì cũng chả có kết quả gì.

Tiếp theo, theo tôi biết thì không có lệnh hay cú pháp nào có thể xoá 1 đoạn code. Chỉ có thể bạn protect code không cho ai xem là được thôi.

Thứ ba vấn đề về Form ( không phải from) của bạn chưa nói rõ ràng nên khó hướng dẫn cụ thể được.
Tôi đoán thế này:
Bạn muốn thay đổi giá trị của 1 cell nào đó trong sheet 1, giả sử A1, mà bạn muốn thực hiện từ sheet 2 bằng 1 form tự tạo.
Vậy từ sheet đó bạn gắn 1 command Button, khi click CmdButton đó thì hiện Form.
Khi hiện Form, bạn gõ gì đó vào 1 textbox, và bạn muốn gán giá trị textbox đó vào sheet1!A1, cái này bài trước tôi nói rồi.

Nếu tôi đoán sai, mời bạn đưa file của bạn lên kèm yêu cầu rõ ràng, mọi người mới giúp bạn nhanh chóng được.
 
Thực sự ra Macro là một đoạn các câu lệnh. Chứ nếu mình nói là Sub thì có lẻ không hợp lý lắm.

ptm0412 đã viết:
Function (hàm) là 1 đọan code trả về kết quả của sự tính toán dựa trên tham số cho vào ban đầu
Cũng có thể không cần.
ptm0412 đã viết:
Tiếp theo, theo tôi biết thì không có lệnh hay cú pháp nào có thể xoá 1 đoạn code. Chỉ có thể bạn protect code không cho ai xem là được thôi.
Có đấy anh. Anh có thể tham khảo tại đây:
http://www.cpearson.com/excel/MainPage.aspx

Lê Văn Duyệt
 
Chào bác, ý của em trong chuyên mục này là tạo một Function dùng để sửa dữ liệu của một ô khác. Ví dụ: Khi mình gỏ vào "=NameAdmin(cong)" thì ở ô Sheet1!A1 xuất hiện chữ "cong" (nếu có thể thì cái Function đó cũng mất luôn). Nhưng em không biết cách viết lệnh trên Function nên phải chuyển qua tạo Form, mà khi tạo Form được mở bằng lệnh Function thì bị Die do không nhấn OK được. Mong các bác tận tình giúp đở. Mục tiêu là nạp dử liệu vào mà không cần dùng nút lệnh, Macro hay một Button nào cả, chỉ dùng lệnh như một hàm tự tạo thôi..... Nếu không được thì cũng xin cảm ơn các bác đã lắng nghe!!!
 
Lần chỉnh sửa cuối:
Chào mọi người, ở bên WebKeToan có 1 người tên Handung107 đã làm được 1 chiêu đó là: nếu dữ liệu là số ở Sheet Nhap thì bên Sheet KetQua sẽ được nhân đôi, còn không thì dữ nguyên rồi đó. Nhưng nếu có thể sửa lại để cho Sheet KetQua không dùng lại vị trí của Sheet Nhap và chỉ những giá trị của ô nào có những ký tự đặt biệt thì mới lọc dữ liệu và đưa vào ô A1 ở Sheet KetQua thôi! Thì coi như cũng xong rồi đó. Mong các bác giúp đở.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn tham khảo & sửa lại (nếu được!)

Nhưng nếu có thể sửa lại để cho Sheet KetQua không dùng lại vị trí của Sheet Nhap và chỉ những giá trị của ô nào có những ký tự đặt biệt thì mới lọc dữ liệu và đưa vào ô A1 ở Sheet KetQua thôi! . . .các bác giúp đở.
PHP:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 Const DacBiet As String = "@#$%&"
 If Not Intersect(Target, Range("A4:A49")) Is Nothing Then
    Dim iJ As Byte, DDai As Byte
    DDai = Len(DacBiet)
    For iJ = 1 To DDai
        If InStr(Target.Value, Mid(DacBiet, iJ, 1)) > 0 Then _
            Sheets("DHo").Range("C8") = Target.Value
    Next iJ
 End If
End Sub
Chú í:
1/* Bạn có thể thêm/bớt các kí tự đặc biệt theo í cá nhân;
2/* Vùng nhập trong Mcr (macro) là 'A4:A49' - Nên sửa theo trang tính sử dụng;
3/* Vùng chép đến chưa phải là sheets("KetQua") như bạn đặt hàng!
4/* . . . . . . . .
PLan.jpg
 
Web KT

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

Back
Top Bottom