Code không chạy được

Liên hệ QC

hongphuong1997

Thành viên tiêu biểu
Tham gia
12/11/17
Bài viết
770
Được thích
321
Giới tính
Nữ
Các bác và các anh chị cho cháu hỏi tại sao cháu viết như này mà code không chạy được ạ
Cháu cảm ơn ạ!
Mã:
Sub vidu1()
Dim i As Integer
For i = 2 To 10
Cells(9, i) = WorksheetFunction.Search.Range(Cells(6, 2), Cells(2, i))
Next i
End Sub
 
Các bác và các anh chị cho cháu hỏi tại sao cháu viết như này mà code không chạy được ạ
Cháu cảm ơn ạ!
Mã:
Sub vidu1()
Dim i As Integer
For i = 2 To 10
Cells(9, i) = WorksheetFunction.Search.Range(Cells(6, 2), Cells(2, i))
Next i
End Sub
Ý đồ của bạn là gi? Tại sao lại liên quan tới search (tất nhiên sai cú pháp)
 
Upvote 0
Bác thì...... không dạy cháu lại xui anh ấy nữa.
hu hu.........
Thay vì hỏi tại sao code không chạy thì mình hỏi làm thế nào kiểm tra, làm thế nào để tìm cái gì có hay không có trong cái gì trước đã.
Sau đó, tiện thể, mình kể thêm mình đang làm vậy mà không cho kết quả...
 
Upvote 0
Em muốn kiểm tra xem ký tự có trong chuỗi không anh oi
sai chỗ nào anh chỉ cho em với
Em cảm ơn anh ạ
Vừa nhìn vừa đoán nhé, về mặt cú pháp thì nó phải như này:
Mã:
Cells(9, i) = WorksheetFunction.Search(Cells(6, 2), Cells(2, i))
(chắc là tìm dữ liệu ô B6 có trong các ô từ B2:J2, nếu có trả về vị trí ký tự đó từ B9:J9)
Nhưng muốn chạy ổn thì phải bẫy lỗi (còn không, nếu trường hợp tìm không ra sẽ báo lỗi, code nghỉ giải lao)
Về mặt cú pháp mình góp ý vậy, còn thường thì nên duyệt bằng mảng, và dùng hàm instr
 
Upvote 0
Bác @befaint và anh @Nhattanktnn oi, mục đích của cháu như này nhé.
Nhưng chau muốn dùng hàm có sẵn của excell cơ.
LÝ DO: (Vì cháu nghiên cứu và học VBA lâu lắm rùi mà đầu óc vẫn ngu quá không thể tự viết được)
hu hu.........
 

File đính kèm

  • Dùng autofin - Copy.xlsb
    12.6 KB · Đọc: 9
Upvote 0
Bác @befaint và anh @Nhattanktnn oi, mục đích của cháu như này nhé.
Nhưng chau muốn dùng hàm có sẵn của excell cơ.
LÝ DO: (Vì cháu nghiên cứu và học VBA lâu lắm rùi mà đầu óc vẫn ngu quá không thể tự viết được)
hu hu.........
Thì bài #7 mình trả lời đúng ý bạn rồi mà? Chỉ thêm phần bẫy lỗi nghiên cứu thêm thôi (mà viết cells vậy mà không cụ thể sheet nào, để lộn sheet chạy code là khỏi undo đó nhé)
 
Upvote 0
Thì bài #7 mình trả lời đúng ý bạn rồi mà? Chỉ thêm phần bẫy lỗi nghiên cứu thêm thôi (mà viết cells vậy mà không cụ thể sheet nào, để lộn sheet chạy code là khỏi undo đó nhé)
em chỉnh mãi không được anh oi
Anh viết giúp em với.
 
Upvote 0
em chỉnh mãi không được anh oi
Anh viết giúp em với.
Thêm dòng On Error Resume Next trước vòng for
Nhưng cái này là bỏ qua tất cả lỗi nha, nếu kiểm soát được lỗi thì dùng, không thì chỉ dùng ở khúc nào chắc chắc biết lỗi đó là gì và On Error Goto 0 ngay sau đó để không bỏ qua lỗi nữa.
Bài này chỉ có lỗi search không có nên dùng được
 
Upvote 0
em cảm ơn anh @Nhattanktnn
ối trời.
Cho vào chạy được luôn anh oi.
Trước nó không chạy tý tẹo nào cả anh oi
 
Upvote 0
Trừ phi cần tốc độ, những hàm bảng tính Excel thì dùng Application dễ hơn Worsheetfunction.
Nếu có những lỗi như #NA, #DIV/0 vân vân thì Application sẽ trả về lỗi ấy, trong khi với Worksheetfunction không có bẫy lỗi (On Error...) thì sub/function sẽ chết luôn.

Tuy nhiên, hàm của Application chúng bao hàm của Worksheet cho nên tốc độ chậm hơn gấp đôi.
 
Upvote 0
Trừ phi cần tốc độ, những hàm bảng tính Excel thì dùng Application dễ hơn Worsheetfunction.
Nếu có những lỗi như #NA, #DIV/0 vân vân thì Application sẽ trả về lỗi ấy, trong khi với Worksheetfunction không có bẫy lỗi (On Error...) thì sub/function sẽ chết luôn.

Tuy nhiên, hàm của Application chúng bao hàm của Worksheet cho nên tốc độ chậm hơn gấp đôi.
Bác oi, Bác oi cháu cũng đã làm nư này
Sub vidu1()
Dim i As Integer
For i = 2 To 10
Cells(9, i) = Application.WorksheetFunction.Search.Range(Cells(6, 2), Cells(2, i))
Next i
End Sub
Nhưng bởi vì cháu không hiểu rõ bản chất và nguyên lý của nó Bác oi.
 
Upvote 0
Cells(9, i) = Application.WorksheetFunction.Search.Range(Cells(6, 2), Cells(2, i))

Dấu chấm là ngữ pháp gọi phương thức hoặc truy vấn thuộc tính.
Search.Range được VBA hiểu là gọi thuộc tính Range của phương thức Search
Phương thức Search vốn không có thuộc tính/phương thức Range. Đương nhiên gọi là lỗi.
 
Upvote 0
Cells(9, i) = Application.WorksheetFunction.Search.Range(Cells(6, 2), Cells(2, i))

Dấu chấm là ngữ pháp gọi phương thức hoặc truy vấn thuộc tính.
Search.Range được VBA hiểu là gọi thuộc tính Range của phương thức Search
Phương thức Search vốn không có thuộc tính/phương thức Range. Đương nhiên gọi là lỗi.
Cháu cảm ơn Bác ạ
Bác oi, Bác làm mẫu cho cháu với Bác.
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom