Nó là thế này:rất mong các anh chị giúp giùm để em út dc học hỏi![]()
Báo lỗi #NAME? ---> Có nghĩa là bạn có ý định dùng code như 1 hàm tự tạo, gõ trên bảng tính để ra kết quả?chỉ cách sử dụng luôn dc ko anh
vì chép code xong nó báo ?name
làm vô file giùm em luôn đi anh
dạ tại em muốn học vậy thôi mà
Code trên là Sub chứ có phải là Function đâu mà báo lỗi #NAME nhỉ? Bạn chỉ cần copy code trên và dán vào Module, sau đó F5 là nó chạy chứ có phải gõ gì lên sheet đâu.chỉ cách sử dụng luôn dc ko anh
vì chép code xong nó báo ?name
làm vô file giùm em luôn đi anh
Vậy thì dùng VBA là đúng. Bài toán này đã có trên diễn đàn từ lâu rồicông thức đó em cần đến 10.000 dòng
Bài toán này nếu viết cho đàng hoàng thì không phải là dễ nha (nếu không nói là KHÓ)em đang tìm hiểu học code từ con số 0 nên chưa biết gì hết
học mấy cái dể trước để biết thế nào là code
rất mong dc học hỏi
Cái vụ tự động này thì bạn nên nghiên cứu sự kiện Worksheet_Change.vậy viêrt thêm lệnh gì để mỗi lần nhập vào cột a nó tự chạy code trên



Em có File này giống bạn hỏi komono.
Nhờ các anh chị viết giùm em Code với. File của em chạy khoảng 40000 dòng.









Em gửi lại File nhờ anh chị viết giúp code.dựa vào cái gì để đi tìm?
"prodcuctiopn_part_no" hả?
Em gửi lại File nhờ anh chị viết giúp code.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rG As Range
Set rG = Intersect(Target, [K2:L65000])
If Not rG Is Nothing Then
On Error GoTo 1111
Application.EnableEvents = False
Application.ScreenUpdating = False
Call ChuyenGiaTri(rG)
1111: Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub



40K dòng thì dùng cái này đi
Biến công thức Vlookup thành giá trị hết, chỉ để dòng đầu bảng (2) và dòng cuối là còn công thức (phục vụ việc copy kéo tiếp hay kéo lại công thức) , sẽ làm nhẹ file, tính toán nhanh
(lưu ý vì biến thành giá trị, nên khi thay đổi nguồn dữ liệu thì phải kéo tính toán lại, vì khi này công giá trị không động nữa)
[/QUOTEPHP:Private Sub Worksheet_Change(ByVal Target As Range) Dim rG As Range Set rG = Intersect(Target, [K2:L65000]) If Not rG Is Nothing Then On Error GoTo 1111 Application.EnableEvents = False Application.ScreenUpdating = False Call ChuyenGiaTri(rG) 1111: Application.EnableEvents = True Application.ScreenUpdating = True End If End Sub
Dữ lieu trong cột CUtting Lot là dữ lieu động anh ah. Nên nếu chuyển thành giá trị sẽ bị sai khi update số lieu.
Anh viet lai giup e voi
Khi nào thì Update số liệu?Dữ lieu trong cột CUtting Lot là dữ lieu động anh ah. Nên nếu chuyển thành giá trị sẽ bị sai khi update số lieu.
Anh viet lai giup e voi






anh tải file này rồi sửa giúp em nhé.Khi nào thì Update số liệu?
Nếu muốn" update dữ liệu khi bấm vào "cái gì đó" thì xem file này.



Muốn update dùng cái này
Luôn động hóa, kể cả thay ở she et nguồn coatcut coatroll hay
Chỉ dữ lại 2 dòng công thức đầu và cuối
Xem kỹ code ở module, ở các module sheetcode
Vẫn file cũ của bạn nhé (vì cho nhẹ nhàng dung lượng), bạn tự bổ sung dữ liệu
Khi em chèn thêm cột trong sheet page 1 công thức và code sẽ bị sai phải không ah
SELECT DISTINCT PC.ID, PC.CUTTING_LOT01, PC.COATING_LOT, R.ROLL_NO FROM
(SELECT DISTINCT P.ID, P.CUTTING_LOT01, C.COATING_LOT FROM [Page1$A1:H65536] AS P
LEFT JOIN [Coatcut$A1:D65536] as C
ON P.CUTTING_LOT01= C.CUTTING_LOT
WHERE P.CUTTING_LOT01<>NULL) AS PC
LEFT JOIN [CoatRoll$A1:D65536] AS R
ON PC.COATING_LOT=R.COATING_LOT






Xem file data mới của bạn thì dữ liệu nhiều quá, thế thì chỉ có áp dụng SQL là tốt nhất (nếu bạn biết về SQL thì có thể hiểu và sửa đơn giản)
hãy dùng file chương trình chia sẻ: Chia sẻ file tổng hợp dữ liệu bằng ADO
với chuỗi lệnh SQL là
PHP:SELECT DISTINCT PC.ID, PC.CUTTING_LOT01, PC.COATING_LOT, R.ROLL_NO FROM (SELECT DISTINCT P.ID, P.CUTTING_LOT01, C.COATING_LOT FROM [Page1$A1:H65536] AS P LEFT JOIN [Coatcut$A1:D65536] as C ON P.CUTTING_LOT01= C.CUTTING_LOT WHERE P.CUTTING_LOT01<>NULL) AS PC LEFT JOIN [CoatRoll$A1:D65536] AS R ON PC.COATING_LOT=R.COATING_LOT
Trong đó bổ sung thêm cột ID vào cột A của sheet page1 chính là thứ tự 1, 2, 3,4....






Em làm được rồi. nhưng lại tạo dữ liệu ra 1 file mới.bạn phải làm theo từng bước này
- file áp dụng là file bạn gửi lên hôm qua ở http://www.megafileupload.com đó
- Bổ sung vào page1
tại ô A1 là chữ: ID
các ô tiếp theo là :1, 2 , 3..... vv thứ tự bạn nhập được đúng không ?
Save file data đó lại, đóng luôn file rùi bấm chạy chương trình (Form)... tiếp tục các bước dưới
- chạy thì phải để mặc định 2 cái chọn trên
In other...file
Having header....
- copy SQL trên vào
- Bấm RUN, sẽ xuất hiện họp chọn file, chọn file data đó của ban
Là có kết quả ở file mới như ý
Em làm được rồi. nhưng lại tạo dữ liệu ra 1 file mới.
Có cách nào để chuyển dữ liệu đến vùng mà mình đặt sẵn không anh.
Nếu như sheet CoatCut, CoatRol ở File khác thì có lấy được dữ liệu không ah.
- Mục Select Cell Fill Result : Cho phép anh đặt kết quả lọc tại ô được chỉ định của Workbook hiện hành, nếu bỏ qua nó sẽ bắt đầu từ A2 của Worbook mới.



vùng đặt sẵn thì bạn đọc ở hướng dẫn bài này
Được ở file khác cũng được, vấn đề bạn thay đổi SQL hợp lý, thì bạn thấy nó đặt ở file mới, liên quan file cũ của bạn đâu. SQL thì cũng theo bài trên nó ở đây http://www.w3schools.com/sql/default.asp
Em chọn vùng để đặt giữ liệu tronng Select Cell Fill Resul. Nhưng không được anh ah toàn bị lỗi thôi



Lỗi thế nào,
Có phải đặt tại file đó không, khi đó không phải gom dữ liệu từ file khác rui mà ở chính workbook đó thì đọc lại ngay câu đầu của bài #6 ở bài hướng dẫn link đó ở hướng dẫn bài này
bạn đọc kỹ đi, hãy đọc và thực hiện đã.