Lỗi name# khi chạy code VBA

Liên hệ QC

nghiendhdt

Thành viên mới
Tham gia
7/3/14
Bài viết
7
Được thích
0
Mọi người ơi, e mới học viết code mà bị cái lỗi này, nhờ a/c giúp dùm e với. (e có kèm theo file excel ạ)
Sub Macro1()
Dim i As Integer
For i = 6 To 8
Sheets("Sheet2").Select
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-4]-Sheet1!RiC17>=0,Sheet2!RC[-3]-Sheet1!RiC18<=0),1,0)"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E45")
Range("E2:E45").Select
Range("F1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[1048575]C)"
Range("F2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]=1,Sheet1!RiC16*Sheet2!RC[-3]*Sheet2!RC[-2],0)"
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F45")
Range("F2:F45").Select
Range("F1").Select
Selection.Copy
Sheets("Sheet1").Select
Range("S" & i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet2").Select
Columns("E:F").Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("Sheet1").Select
Next i
End Sub
 

File đính kèm

  • NSN.xlsm
    23.2 KB · Đọc: 6
Mọi người ơi, e mới học viết code mà bị cái lỗi này, nhờ a/c giúp dùm e với. (e có kèm theo file excel ạ)
Sub Macro1()
Dim i As Integer
For i = 6 To 8
Sheets("Sheet2").Select
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-4]-Sheet1!RiC17>=0,Sheet2!RC[-3]-Sheet1!RiC18<=0),1,0)"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E45")
Range("E2:E45").Select
Range("F1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[1048575]C)"
Range("F2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]=1,Sheet1!RiC16*Sheet2!RC[-3]*Sheet2!RC[-2],0)"
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F45")
Range("F2:F45").Select
Range("F1").Select
Selection.Copy
Sheets("Sheet1").Select
Range("S" & i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet2").Select
Columns("E:F").Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("Sheet1").Select
Next i
End Sub
Ri này là trật
 
Upvote 0
Mọi người ơi, e mới học viết code mà bị cái lỗi này, nhờ a/c giúp dùm e với. (e có kèm theo file excel ạ)
Sub Macro1()
Dim i As Integer
For i = 6 To 8
Sheets("Sheet2").Select
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-4]-Sheet1!RiC17>=0,Sheet2!RC[-3]-Sheet1!RiC18<=0),1,0)"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E45")
Range("E2:E45").Select
Range("F1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[1048575]C)"
Range("F2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]=1,Sheet1!RiC16*Sheet2!RC[-3]*Sheet2!RC[-2],0)"
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F45")
Range("F2:F45").Select
Range("F1").Select
Selection.Copy
Sheets("Sheet1").Select
Range("S" & i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet2").Select
Columns("E:F").Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("Sheet1").Select
Next i
End Sub
Bạn thử sửa kiểu này xem:
Sửa dòng này:
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-4]-Sheet1!RiC17>=0,Sheet2!RC[-3]-Sheet1!RiC18<=0),1,0)"

Thành như sau:
Range("E2").Value = "=IF(AND(A2-Sheet1!Q7>=0,B2-Sheet1!R7<=0),1,0)"

Mấy cái chỗ màu đỏ bạn xem ô nào thì sửa đúng ô đó nhé, đó chỉ là ví dụ thôi ạ,nghĩa là công thức bạn nhập trên bảng tính như thế nào thì bạn copy vào code như vậy, với trường hợp này OT nghĩ là vậy để Bạn dễ hình dung cò với trường hợp khác có thể sẽ viết khác.
 
Upvote 0
Bạn thử sửa kiểu này xem:
Sửa dòng này:
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-4]-Sheet1!RiC17>=0,Sheet2!RC[-3]-Sheet1!RiC18<=0),1,0)"
Còn mấy cái tham số i người ta đưa vào thì sao? mục đích đưa i vào để cho i chạy mà?
Thử sửa thế này, nếu đúng là lỗi ở dòng này:

ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-4]-Sheet1!R" & i & "C17>=0,Sheet2!RC[-3]-Sheet1!R" & i & "C18<=0),1,0)"
 
Upvote 0
Còn mấy cái tham số i người ta đưa vào thì sao? mục đích đưa i vào để cho i chạy mà?
Thử sửa thế này, nếu đúng là lỗi ở dòng này:

ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-4]-Sheet1!R" & i & "C17>=0,Sheet2!RC[-3]-Sheet1!R" & i & "C18<=0),1,0)"
À ừ nhỉ, con không để ý dòng For i.. con xin lỗi chú Mỹ nhiều nhé.
 
Upvote 0
Chú Mỹ có lỗi để bạn xin à
Con chào Bác @HieuCD
Dạ con đang cố viết thêm mấy bài để vượt chú Mỹ về số bài viết trong tháng Bác ạ, hihi.
Nói vậy chứ con thấy viết nhiều cũng giúp mình mở mang thêm được rất nhiều thì phải...
Bác cũng hay onilne muộn thế ạ, Bác giữ gìn sức khỏe ạ.
Con cũng chuẩn bị 'ngất' dần đây ạ.
Chúc Bác ngủ ngon ạ.
 
Upvote 0
Con chào Bác @HieuCD
Dạ con đang cố viết thêm mấy bài để vượt chú Mỹ về số bài viết trong tháng Bác ạ, hihi.
Nói vậy chứ con thấy viết nhiều cũng giúp mình mở mang thêm được rất nhiều thì phải...
Bác cũng hay onilne muộn thế ạ, Bác giữ gìn sức khỏe ạ.
Con cũng chuẩn bị 'ngất' dần đây ạ.
Chúc Bác ngủ ngon ạ.
Mình mới ăn sáng xong :)
 
Upvote 0
Công thức không có i, bởi họ fill down từ dòng 2 tới dòng 45 rồi.
May ra i ở chỗ S_i thôi.

Cái mớ hỗn độn đó kinh quá, thà rằng chép nguyên cái kết quả record macro còn nhìn được.
 
Upvote 0
Công thức không có i, bởi họ fill down từ dòng 2 tới dòng 45 rồi.
May ra i ở chỗ S_i thôi.

Cái mớ hỗn độn đó kinh quá, thà rằng chép nguyên cái kết quả record macro còn nhìn được.

OT cũng định góp ý cá vụ vòng lặp xong gán công thức từng thấy kỳ, nếu thay vì for gán cho cả vùng đó bằng một công thức là được kiểu dạng bôi đen vùng cần nhập sau đó nhập một công thưc sau đó crl+Enter là xong ấy ạ.
OT thuộc dạng gà công nghiệp, lại còn gà vùng sâu vùng xa góp ý hỏng ý tưởng bạn ấy thì xấu hổ ạ.

Úi, Bác đang công tác ở VN hay ở nước ngòai vậy, hay là Bác làm đêm thế ạ.
 
Upvote 0
OT cũng định góp ý cá vụ vòng lặp xong gán công thức từng thấy kỳ, nếu thay vì for gán cho cả vùng đó bằng một công thức là được kiểu dạng bôi đen vùng cần nhập sau đó nhập một công thưc sau đó crl+Enter là xong ấy ạ.
OT thuộc dạng gà công nghiệp, lại còn gà vùng sâu vùng xa góp ý hỏng ý tưởng bạn ấy thì xấu hổ ạ.


Úi, Bác đang công tác ở VN hay ở nước ngòai vậy, hay là Bác làm đêm thế ạ.
Chổ mình gần 10 giờ sáng
 
Upvote 0
Chắc lãnh đạo chỉ chờ bạn học tiếng xong là cử đi công tác ở Nhật mà. Cố gắng nhé.
Dạ con chào Bác,
Công ty con không có chính sách này Bác ạ, Sếp của con cũng không bắt.
Tự con làm khó mình thôi Bác ạ, con sẽ cố gắng ạ, con cảm ơn Bác đã giúp con có công cụ để học tiếng Nhật này.
Con chúc Bác nhiều sức khỏe ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Còn mấy cái tham số i người ta đưa vào thì sao? mục đích đưa i vào để cho i chạy mà?
Thử sửa thế này, nếu đúng là lỗi ở dòng này:

ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-4]-Sheet1!R" & i & "C17>=0,Sheet2!RC[-3]-Sheet1!R" & i & "C18<=0),1,0)"
để e thử theo chỉ dẫn của bạn ạ, e mới học nên chưa biết sửa sai như thế nào hi hi, nhờ có các anh chị giúp đỡ
 
Upvote 0
Web KT

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

Back
Top Bottom