Formula giữa 2 sheets trong VBA (1 người xem)

Liên hệ QC

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

dvnhatbao

Thành viên chính thức
Tham gia
11/7/12
Bài viết
50
Được thích
1
Mong mọi người giải đáp làm sao để xử lí formula giữa 2 sheets trong VBA.
Em đã viết code như sau nhưng bị lỗi #REF nên mong mọi người giúp em. Và dưới đây là code của em và kết quả

Mã:
    Set rng_Format = ws_DiscountAnalysis.Cells(l_LastQueryRow, 12)    rng_Format.Value = "Invoices Amount Not Paid (Inc GST)"
    
    Set rng_Format = sheet1.Cells(l_LastQueryRow + 1, 12)
    rng_Format.FormulaR1C1 = "=SUM('Sheet2'!G3:G105)"

Và đây là kết quả trong range của em : =SUM('Invoices Not Paid'!'G3':'G105')

Vậy mọi người có cách nào thì giúp em với. Thanks
 
Mong mọi người giải đáp làm sao để xử lí formula giữa 2 sheets trong VBA.
Em đã viết code như sau nhưng bị lỗi #REF nên mong mọi người giúp em. Và dưới đây là code của em và kết quả

Mã:
    Set rng_Format = ws_DiscountAnalysis.Cells(l_LastQueryRow, 12)    rng_Format.Value = "Invoices Amount Not Paid (Inc GST)"
    
    Set rng_Format = sheet1.Cells(l_LastQueryRow + 1, 12)
    rng_Format.FormulaR1C1 = "=SUM('Sheet2'!G3:G105)"

Và đây là kết quả trong range của em : =SUM('Invoices Not Paid'!'G3':'G105')

Vậy mọi người có cách nào thì giúp em với. Thanks
Bạn sửa câu này:
PHP:
rng_Format.FormulaR1C1 = "=SUM('Sheet2'!G3:G105)"
Thành câu này:
PHP:
rng_Format.Formula = "=SUM('" & Sheet2.Name & "'!G3:G105)"
 
Upvote 0
Tại sao phải có dấu nháy =SUM('Invoices Not Paid'!'G3':'G105')
 
Upvote 0
Dạ không phải anh, lúc chạy code VBA nó tự sinh ra như vậy
 
Upvote 0
Dạ vẫn bị lỗi REF đó anh ah, còn cách nào khác nữa không anh, tiện thể a có tài liệu nào về VBA cho em xin với ^^
Thanks
Bạn thử Record Macro ghi lại việc bạn nhập công thức trực tiếp trên Sheet1 xem nó ra câu lệnh ra sao. Sau đó chế biến lại một chút cho phù hợp.
Tóm lại là vẫn nên đưa cái file ấy lên đây, nếu ngại thông tin cá nhân trong file thì bạn xóa hết đi, chỉ để lại những gì liên quan trực tiếp đến công thức thôi.
 
Upvote 0
Bạn thử Record Macro ghi lại việc bạn nhập công thức trực tiếp trên Sheet1 xem nó ra câu lệnh ra sao. Sau đó chế biến lại một chút cho phù hợp.
Tóm lại là vẫn nên đưa cái file ấy lên đây, nếu ngại thông tin cá nhân trong file thì bạn xóa hết đi, chỉ để lại những gì liên quan trực tiếp đến công thức thôi.

Dạ vì cái tool này chạy cùng cơ sở dữ liệu là SQL nên giờ em post lên forum của mình cũng không có data để chạy anh ah. Không biết có cách nào khác ko ? anh có file vd nào về formula giữa 2 sheet cho em xin.
Vd:
tức là 1 range của sheet 1 sẽ chứa kết quả của 1 column bên sheets 2
 
Upvote 0
Dạ vậy anh có thể cho e xin mail của a được không, cái này hơi confidentialmột chút, a thông cảm
Lạ thật, mình đã kiểm tra trong file bạn gửi, đâu có thấy chỗ nào phát sinh lỗi #REF! đâu.
Bạn xem có phải như vầy không (nhìn công thức trên thanh Formula và kết quả ở trên cột L):
SUM.jpg
 
Upvote 0
Thử bỏ cả formulaR1C1 lẫn formula xem.

rng_Format= "=SUM('" & Sheet2.Name & "'!G3:G105)"

vì tôi thí nghiệm

rng_Format.FormulaR1C1 = "=SUM('" & Sheet2.Name & "'!G3:G105)"

cũng bị lỗi như tác giả.

Sửa lại như NghiaPhuc cũng OK, chắc tác giả chưa bỏ R1C1
 
Upvote 0
Lạ thật, mình đã kiểm tra trong file bạn gửi, đâu có thấy chỗ nào phát sinh lỗi #REF! đâu.
Bạn xem có phải như vầy không (nhìn công thức trên thanh Formula và kết quả ở trên cột L):
View attachment 92744

File em gữi cho anh là đúng công thức như vậy nhưng khi a click nút refresh data, nó sẽ báo lỗi #REF
 
Upvote 0
Thử bỏ cả formulaR1C1 lẫn formula xem.

rng_Format= "=SUM('" & Sheet2.Name & "'!G3:G105)"

vì tôi thí nghiệm

rng_Format.FormulaR1C1 = "=SUM('" & Sheet2.Name & "'!G3:G105)"

cũng bị lỗi như tác giả.

Sửa lại như NghiaPhuc cũng OK, chắc tác giả chưa bỏ R1C1

Đã thử như cách của anh nhưng vẫn bị lỗi #REF , trong VBA có cách nào để link giữa 2 sheet ko anh ? khi chạy xong nó báo lỗi và chỗ công thức bị lỗi như sau (=SUM('Invoices Not Paid'!#REF!)
 
Upvote 0
Đã thử như cách của anh nhưng vẫn bị lỗi #REF , trong VBA có cách nào để link giữa 2 sheet ko anh ? khi chạy xong nó báo lỗi và chỗ công thức bị lỗi như sau (=SUM('Invoices Not Paid'!#REF!)

Bó tay, chẳng ai test được khi không có file.
 
Upvote 0
Cảm ơn các anh đã hỗ trợ, code hoàn toàn đúng ah, nhưng mà do trong application của em trình bày sheet cần tính lại chạy sau cùng, và sheet show kết quả lại chạy trước nên bị lỗi như vậy. Giờ thì em đã làm được. Cảm ơn mọi người
 
Upvote 0
Web KT

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

Back
Top Bottom