ngô nghê về VBA (1 người xem)

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

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

mrhackgm

Thành viên chính thức
Tham gia
30/1/10
Bài viết
80
Được thích
-11
Kính gửi các Bác, các anh các chị

em bắt đầu va chạm VBA, và có ý định tự học, nhưng muốn tiếp cận theo cách mới.
là hỏi thẳng vào cấu trúc, chứ ko đi vòng ngoài (interger ... long ....)

hôm nay em xin có câu hỏi ngô nghê như sau :

ví dụ đã viết:
Sub test()
Dim a As Long ''(vidu)
a = 1234567890
MsgBox a
End Sub

tại vị trí chữ Sub (Sub test () ) kia có thể có những gì, vì khi thì em thấy Function khi thì thấy private sub
tác dụng của nó ra sao, tìm chuyên mục nào để đọc nó,

Kính mong Kính gửi các Bác, các anh các chị chỉ giúp
Em xin chân thành cảm ơn!
 
Kính gửi các Bác, các anh các chị

em bắt đầu va chạm VBA, và có ý định tự học, nhưng muốn tiếp cận theo cách mới.
là hỏi thẳng vào cấu trúc, chứ ko đi vòng ngoài (interger ... long ....)

hôm nay em xin có câu hỏi ngô nghê như sau :



tại vị trí chữ Sub (Sub test () ) kia có thể có những gì, vì khi thì em thấy Function khi thì thấy private sub
tác dụng của nó ra sao, tìm chuyên mục nào để đọc nó,



Kính mong Kính gửi các Bác, các anh các chị chỉ giúp
Em xin chân thành cảm ơn!

Sub là thủ tục còn Function là hàm. Hàm thì nó có kết cấu giống với các hàm có sẵn trong Excel đó nhưng ở đây nó là hàm do

người dùng viết nên nó có tính tùy biến cao hơn, hàm sẽ cho ra kq khi ta thực hiện gõ tên hàm và các đối số của nó

trên bảng tính excel rồi ấn Enter còn Sub thì có nhiều cách chạy chẳng hạn như : ấn F5 hoặc nút Run (mũi tên màu

xanh trong cửa sổ VBA). Nói chung tùy những tình huống cụ thể mà ta lựa chọn dùng SUB hay FUNCTION.

Còn về các từ đứng trước SUB hay FUNCTION thì bạn đọc bài viết này :

http://www.giaiphapexcel.com/forum/...te-public-static-function&p=679230#post679230
 
Upvote 0
Bạn thử diễn dịch các câu lệnh sau đây ra tiếng Việt xem sao:

Mã:
Option Explicit
[B]Sub ChayDenHet()[/B] 
 Dim Cls As Range
 
 For Each Cls In Range([A3], [A3].End(xlDown))
    Cls.Offset(, 1).Value = CongThem(Cls.Value)
 Next Cls
[B]End Sub[/B]
PHP:
Function CongThem(Num As Double) As Double
 CongThem = Num * 3
End Function
 
Upvote 0
Sub là thủ tục còn Function là hàm. Hàm thì nó có kết cấu giống với các hàm có sẵn trong Excel đó nhưng ở đây nó là hàm do

người dùng viết nên nó có tính tùy biến cao hơn, hàm sẽ cho ra kq khi ta thực hiện gõ tên hàm và các đối số của nó

trên bảng tính excel rồi ấn Enter còn Sub thì có nhiều cách chạy chẳng hạn như : ấn F5 hoặc nút Run (mũi tên màu

xanh trong cửa sổ VBA). Nói chung tùy những tình huống cụ thể mà ta lựa chọn dùng SUB hay FUNCTION.

Còn về các từ đứng trước SUB hay FUNCTION thì bạn đọc bài viết này :

http://www.giaiphapexcel.com/forum/...te-public-static-function&p=679230#post679230

link hay quá, em sẽ đọc từ từ, rồi quay lại hỏi chị tiếp nhé

Bạn thử diễn dịch các câu lệnh sau đây ra tiếng Việt xem sao:

Mã:
Option Explicit
[B]Sub ChayDenHet()[/B] 
 Dim Cls As Range
 
 For Each Cls In Range([A3], [A3].End(xlDown))
    Cls.Offset(, 1).Value = CongThem(Cls.Value)
 Next Cls
[B]End Sub[/B]
PHP:
Function CongThem(Num As Double) As Double
 CongThem = Num * 3
End Function
em mới bắt đầu va chạm, nên ko dịch đc hết cả đoạn code bác à.
em sẽ cố gắng ạ
[/code]
PHP:
Function CongThem(Num As Double) As Double
 CongThem = Num * 3
End Function

công thức mới có tên CộngThêm, tập số thực
CôngThêm hoạt động bằng cách : số nguồn nhân thêm 3
kết thúc
 
Lần chỉnh sửa cuối:
Upvote 0
...

em bắt đầu va chạm VBA, và có ý định tự học, nhưng muốn tiếp cận theo cách mới.
hỏi thẳng vào cấu trúc, chứ ko đi vòng ngoài (interger ... long ....)

...

Cách tiếp cận của bạn sai rồi.
Bạn muốn học toán thì phải học cộng trừ nhân chia trước. Toán đố chỉ có ý nghĩa khi bạn đã thông suốt các con toán căn bản.

Ba cái intger, long... là phần căn bản của lập trình. Bạn coi nó là vòng ngoài thì quả là bạn tập chạy trước khi biết đi.

Phần chính của câu hỏi:
Function và Sub cùng là một đoạn code được gói riêng ra, có thể tạm gọi là phương thức. Cái điểm chính khác nhau là Function trả về một trị trong khi Sub thì không.
 
Upvote 0
...
... còn Sub thì có nhiều cách chạy chẳng hạn như : ấn F5 hoặc nút Run (mũi tên màu

xanh trong cửa sổ VBA). ...

Câu này không hẳn đúng:

1. Function, nếu không cần tham số thì cũng có thể chayj bằng cách nhấn F5

2. Cả Sub lẫn Function, nếu cần tham số thì không thể chạy bằng cách nhấn F5

3. Nếu bạn không cần xét tới trị trả về của Function thì bạn có thể dùng Function in hệt như Sub

Trong ví dụ sau đây, bạn có thể sửa sub S1 thành function và function F1 thành sub, vô tư. Function F2 thì hơi rắc rối 1 chút, vì nó có gán trị. Tuy nhiên, nếu muốn, bạn vẫn có thể gọi nó in hệt như sub.

Sub S1()
MsgBox "result of sub"
End Sub
Function F1()
MsgBox "result of function"
End Function
Function F2()
MsgBox "result of function"
F2 = caiGiDo ' nếu là sub thì không được gán vì sẽ bị lỗi biến trùng tên với sub
End Function

Sub tst()
S1
F1
F2
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom