Viết các hàm excel trong VBA. (6 người xem)

Liên hệ QC

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

thaibinh_excel

Thành viên hoạt động
Tham gia
18/10/07
Bài viết
127
Được thích
29
Nghề nghiệp
Bán Hàng
Chào các bác,

Các bác chi giúp mình cú pháp để viết hàm Vlookup - hàm if va Sumif trong VBA như ví dụ sau với :

1. =IF(Products!$B90="","",VLOOKUP(Products!$B90,General!$B$6:$AZ$1001,26,0))
2. =IF($B190="","",IF($Z190>=2000,"Thành Viên Bạch Kim",IF($Z190>=1000,"Thành Viên Vàng",IF($Z190>=500,"Thành Viên Bạc",IF($Z190>=300,"Thành Viên Thân Thiết có Gift 300","Thành Viên Thân Thiết")))))
3. =IF(Products!$K66="","",SUMIF(Products!$B$5:$B$299,Products!$K66,Products!$F$5:$F$299))
Cám ơn các bác nhiều.
 
Lần chỉnh sửa cuối:
Chào các bác,

Các bác chi giúp mình cú pháp để viết hàm Vlookup - hàm if va Sumif trong VBA như ví dụ sau với :

1. =IF(Products!$B90="","",VLOOKUP(Products!$B90,General!$B$6:$AZ$1001,26,0))
2. =IF($B190="","",IF($Z190>=2000,"Thành Viên Bạch Kim",IF($Z190>=1000,"Thành Viên Vàng",IF($Z190>=500,"Thành Viên Bạc",IF($Z190>=300,"Thành Viên Thân Thiết có Gift 300","Thành Viên Thân Thiết")))))
3. =IF(Products!$K66="","",SUMIF(Products!$B$5:$B$299,Products!$K66,Products!$F$5:$F$299))
Cám ơn các bác nhiều.
Ý bạn là dùng VBA để gán các công thức này vào một ô nào đó hay là tạo một hàm riêng biệt để sử dụng?

Nếu dùng VBA để gán công thức trên cho ô nào đó thì dùng có pháp sau:
Sheets("TenSheet").Range("A1").Formula="=IF(Products!$B90="""","""",VLOOKUP(Products!$B90,General!$B$6:$AZ$1001,26,0))"

Tương tự cho các công thức khác. Lưu ý cái dấu """" (bốn dấu nháy kép nha)
 
Lần chỉnh sửa cuối:
Ý bạn là dùng VBA để gán các công thức này vào một ô nào đó hay là tạo một hàm riêng biệt để sử dụng?

Nếu dùng VBA để gán công thức trên cho ô nào đó thì dùng có pháp sau:


Tương tự cho các công thức khác. Lưu ý cái dấu """" (bốn dấu nháy kép nha)

Cám ơn bác Cada. Bác chỉ dẫn thêm 1 chút nữa giúp mình nhé. Cụ thể là mình làm thế này.

Mình tạo 1 Form nhập liệu, trong đó có TextBox1 là điều kiện để truy tim dữ liệu. Mình muốn dữ liệu hiện trong Form sau đó chép ngược lại vào data để thay thế cho công thức. Nhờ bác xem qua và chỉ dẫn mình cách làm với.

Mình đính kèm file để bác tham khảo.

Thanks and Best Regards,
 

File đính kèm

Ý bạn là dùng VBA để gán các công thức này vào một ô nào đó hay là tạo một hàm riêng biệt để sử dụng?

Nếu dùng VBA để gán công thức trên cho ô nào đó thì dùng có pháp sau:


Tương tự cho các công thức khác. Lưu ý cái dấu """" (bốn dấu nháy kép nha)
Gửi cadafi và các bạn.
Mình có câu hỏi bổ xung như sau. Trong excel có công thức =IF(B1="","",ROUND(A1*B1,2)) thì trong VBA viết như thế nào?
Mong cadifi và các bạn nào biết chỉ giúp mình.
Cám ơn các bạn.
 
Gửi cadafi và các bạn.
Mình có câu hỏi bổ xung như sau. Trong excel có công thức =IF(B1="","",ROUND(A1*B1,2)) thì trong VBA viết như thế nào?
Mong cadifi và các bạn nào biết chỉ giúp mình.
Cám ơn các bạn.
Giả sử bạn muốn đặt công thức này tại cell C1, vậy trong VBA sẽ viết thế này:
PHP:
Range("C1") = "=IF(B1="""","""",ROUND(A1*B1,2))"
Thường thì đã dùng VBA ta nên hạn chế công thức, không nên lộn xộn 2 thứ, kém hiệu quả lắm ---> Đã VBA thì VBA toàn tập luôn (kẹt lắm mới chèn công thức)
 
Để gán công thức cho 1 ô mình hay dùng:

PHP:
[c1].Formula = "=A1+B1"

Để gán giá trị cho 1 ô mình hay dùng:

PHP:
[c2] = [A1] + [B1]
[c3] = Evaluate("A1+B1")
[c4] = Cells(1, 1) + Cells(1, 2)
[c5] = Range("A1") + Range("B1")
........
 
Chào các bạn.
Mình đang viết một hàm tính diện tích mối hàn bằng VBA.
Có một thắc mắc là mình tìm trong help của VBA ko có hàm atan.
Chỉ có hàm tan thôi.
Các bạn có thể giúp mình đoạn code viết hàm atan được không?
quycach = Vxx ; kichthuoc =chieudaythep
xx là góc của mối hàn.
Public Fuction moihan(quycach, kichthuoc)
QC = replace(UCASE(quycach), ",", ".")
KT = replace(UCASE(kichthuoc), ",", ".")
Dim S, c, d, e, g, h, k as integer
if left(quycach,1) = "V" then
c = d = e = g = h = k = 2
goc = right(quycach,2) + 0
b = 2*3.1416*goc/360
AB3 = c + 2*(a-d)*tan(b/2)
CD3 = c
l = a - d
S3 = (AB3 + CD3)*l/2
AB1 = 2*g+c
BI1 = AB1/2
OI1 = (BI1^2-IC1^2)/(2*IC)
alpha1 = atan(BI1/OI1)
Sq1 = (BI1^2+OI1^2)*alpha1
Stg1 = OI1*AB1/2
S1 = Sq1 - Stg1
AB4 = 2*e + AB3
BI4 = AB4/2
IC4 = h
OI4 = (BI4^2-IC4^2)/(2*IC4)
alpha4 = atan(BI4/OI4)
Sq4 = (BI4^2+OI4^2)*alpha4
Stg4 = OI4*AB4/2
S4 = Sq4 - Stg4
S = S1 + S2 + S3 + S4
moihan = S
else moihan = 0
end function
Mình đang viết đến đây, thì lỗi xảy ra ở đoạn atan.
Có bạn nào biết cách viết hàm atan trong BVA thì chỉ giúp mình với nhé!
 
Chào các bạn.
Mình đang viết một hàm tính diện tích mối hàn bằng VBA.
Có một thắc mắc là mình tìm trong help của VBA ko có hàm atan.
Chỉ có hàm tan thôi.
Các bạn có thể giúp mình đoạn code viết hàm atan được không?
Sao lại không có chứ, nó tên là ATN
 
Nhờ Anh/Chị giúp mình đặt hàm If trong code VBA như sau:
- Cột A (từ A2:A9999) có các điều kiện: "Bản chính và bản sao"; "Bản chính"; "Bản sao"
- Nếu cột A là "Bản chính và bản sao"; "Bản chính" thì cột B (từ B2:B9999) sẽ bằng 1.
- Nếu cột A là "Bản sao" thì cột B sẽ bằng 0.
và không sử dụng nút lệnh thi hành lệnh mà lòng vào 01 code nào đó để thực thi nếu đáp ứng đều kiện đó.
Xin chân thành cảm ơn!
 
Web KT

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

Back
Top Bottom