Sửa lỗi khi Record macro có nội dung 1 hàm dài xuống dòng bị lỗi

Liên hệ QC

tranhthurac

Thành viên mới
Tham gia
6/10/16
Bài viết
35
Được thích
3
Mã code từ record
Mã:
Sub record()
    Sheet17.Range("x10").Formula = _
        "=IF(INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN(RC[-1]),4),""1"","""")&ROW())="""",""""," & Chr(10) & "IF(OR(INDEX(solieu,RC[-3]+3,(R6C[2]-1)*R3C2+R4C7)="""",RC[12]=R2C2),""""," & Chr(10) & "IF(AND(INDEX(solieu,RC[-3]+3,(R6C-1)*R3C2+R4C7)="""",RC[2]>0),RC[2]," & Chr(10) & "IF(INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN(RC[5]),4),""1"","""")&7)/100>442,((RC[4]*100)-TRUNC(RC[4]*100))/150,0)+IF(RC[12]=R1C2,RC[2]-RC[-9]/1000" & _
        "olieu,RC[-3]+3,(R6C-1)*R3C2+R4C7)))))"
End Sub
Mã code phải sửa lại
Mã:
Sub sualai()
    Sheet17.Range("x10").Formula = _
        "=IF(INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN(RC[-1]),4),""1"","""")&ROW())="""",""""," & Chr(10) & "IF(OR(INDEX(solieu,RC[-3]+3,(R6C[2]-1)*R3C2+R4C7)="""",RC[12]=R2C2),""""," & Chr(10) & "IF(AND(INDEX(solieu,RC[-3]+3,(R6C-1)*R3C2+R4C7)="""",RC[2]>0),RC[2]," & Chr(10) & "IF(INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN(RC[5]),4),""1"","""")&7)/100>442,((RC[4]*100)-TRUNC(RC[4]*100))/150,0)+IF(RC[12]=R1C2,RC[2]-RC[-9]/1000,INDEX(solieu,RC[-3]+3,(R6C-1)*R3C2+R4C7)))))"
End Sub
Chỗ xuống dòng bị thiếu ,INDEX(s
Bác nào biết chỉ giúp.
Tks
 
Bạn cho hỏi cách để không hiển thị địa chỉ tương đối Rờ Cờ, mà cho nó hiển thị địa chỉ tuyệt đối A2, hay X6....
Bạn trình bầy không chính xác.
Rờ Cờ không phải là địa chỉ tương đối hay tuyệt đối. Rờ Cờ là STYLE R1C1.
A2, hay X6 không phải địa chỉ tuyệt đối. Mà nếu tôi hiểu ý thì bạn muốn nói tới cái gọi là STYLE - style A1.

Thực ra tôi không hiểu bạn làm thế để làm gì. Bạn đã có công thức trong X10, vậy record X10 để làm gì?

Nếu bạn record công thức hoàn toàn mới thì bạn sẽ có vd.
Mã:
ActiveCell.FormulaR1C1 = "blala hic hic"
Đó là style R1C1. Nếu bạn không quen nhìn Rờ Cờ thì sau đó bạn chọn lại ô X10, là ô có công thức vừa ghi, và chạy code.

Mã:
Debug.Print "cong thuc" & ActiveCell.Formula
Bạn sẽ nhìn thấy trong cửa sổ Immediate style A1.

Hoặc

Mã:
ThisWorkbook.Worksheets("Sheet1").Range("Z1").Value = "cong thuc" & ActiveCell.Formula
Bạn sẽ nhìn thấy trong ô Z1 ở sheet1 style A1.
 
Upvote 0
Bạn viết công thức ở bảng tính, rồi chép vào code là được thôi.
Khi chép vào code thì mình phải chỉnh sửa khá nhiều, nhiều khi nó trong biểu thức có ký tự ví dụ "1", khi chuyển sang code thì mình phải sửa lại ""1"" thì mới chạy được, hiện tại thì mình đang làm theo thủ công là sửa lại những chỗ có ký tự " ở trong công thức.
P/S: Do mới tìm hiểu học hỏi VBA, có nhiều cái không biết nên nhiều câu hỏi còn ngớ gẫn lắm. bạn
 
Upvote 0
Web KT
Back
Top Bottom