ptlong04x1
Thành viên tích cực


- Tham gia
- 15/10/08
- Bài viết
- 1,031
- Được thích
- 1,531
- Nghề nghiệp
- Kỹ sư xây dựng
Em xem file và cho ý kiến thêm thử nhéem không hiểu, giờ có 1 bảng tra thép. Giờ làm trong excel. muốn tìm ra các phương án mà có diện tích cốt thép lớn hơn giá trị cho trước có được không (nhưng khống chế chênh lệch không được quá 10% chẳng hạn)
Đúng rồi nhưng những cái đó thừa sức em làm được mà. Cần thiết anh tải file khác lênChuẩn rồi anh Hoài ơi. Nhưng chổ Th chọn, Fa chọn, và tỷ lệ chênh lệch anh chưa làm phải không?
Trong trường hợp tra nhiều diện tích cùng môt lúc thì tôi làm như thé này bị lỗi. Mong các anh chị xem giúp
- Quét vùng A2:A10
- Nhấn nút Test - Code bị lỗi
Mục đích đưa kết quả tra cứu được thành Validation để người dùng chọn phương án thép thích hợp ở cột D
Tôi test hổng có bất cứ lỗi nào cả!Báo lỗi tại hàng có code: .Add 3, , , Arr
Xin các anh chị giúp đỡ
Dạ, em đang dùng office 2003 nhưng chuỗi không đến nỗi dài đến 255 ký tự được (vì tính sơ qua 1 phần tử 9 ký tự, cộng ký tự "," nữa là 10 như vậy chuỗi của em ít nhất cũng được 25 phần tử như thế, khó đạt đến điều này)Tôi test hổng có bất cứ lỗi nào cả!
Xin hỏi: Bạn dùng Office version nào? Nếu là Office 2003 thì Validation có giới hạn, cụ thể là độ dài chuổi không được vượt quá 255 ký tự ---> Bạn kiểm tra lại xem
Dạ, em đang dùng office 2003 nhưng chuỗi không đến nỗi dài đến 255 ký tự được (vì tính sơ qua 1 phần tử 9 ký tự, cộng ký tự "," nữa là 10 như vậy chuỗi của em ít nhất cũng được 25 phần tử như thế, khó đạt đến điều này)
Đúng là em test trên Excel 2007 không bị lỗi, lạ thật
Em đã thửBạn kiểm tra thế này nhé:
- Gõ hàm TraCotThep trực tiếp lên sheet rồi dùng hàm LEN kiểm tra độ dài chuổi xem nó dài bao nhiêu?
- Xong, copy giá trị chuổi nhận được rồi Add bằng tay vào Validation xem "nó" có cự nự gì không
Hỏi lại:Em đã thử
- Chuỗi có độ dài lớn nhất là 93
- Thay thế chuỗi có ký tự "," thành ";" và Copy chuỗi add vào Validation thì vẫn được bình thường
(em cũng đã thử thay đổi hàm Join(ArrKQ, ";") vẫn không được)
- Nếu không sửa dấu phẩy thành dấu chấm phẩy, cứ để nguyên vậy copy và Add vào Validation thì có lỗiHỏi lại:
- Nếu bạn không sửa dấu phẩy thành dấu chấm phẩy, cứ để nguyên vậy copy và Add vào Validation thì có lỗi gì không?
- Trong code của hàm TraCotThep, nếu bạn sửa đoạn TraCotThep = Join(ArrKQ, ",") thành TraCotThep = Join(ArrKQ, ";") thì code có lỗi không?
Rắc rối quá đi mất- Nếu không sửa dấu phẩy thành dấu chấm phẩy, cứ để nguyên vậy copy và Add vào Validation thì có lỗi
- Trong code của hàm TraCotThep, nếu sửa đoạn TraCotThep = Join(ArrKQ, ",") thành TraCotThep = Join(ArrKQ, ";") thì code vẫn có lỗi (em nghĩ cái này không quan trọng, nếu dấu sai khác trở thành Validation 1 phần tử)
Sư phụ có thể vào TeamVier để can thiệp vào máy emRắc rối quá đi mất
Tiếc là tôi không ngồi trên máy bạn, nếu không tôi tin rằng có thể biết được đó là lỗi gì
Vấn đề độ dài ký tự ta loại ra (vì chuổi của bạn không vượt quá 255). Vậy ta có thể nghĩ đến dấu phân cách. Bạn thử vào Control Panel, cho mọi thứ trở về mặc định như lúc mới cài Windows xem (tức dấu thập phân là dấu chấm, dấu phân cách ngàn là dấu phẩy, dấu phân cách công thức là dấu phẩy)... xong thử lại code!
(Tôi dùng Windows 7, Office 2010, có vài thứ không giống trên máy của bạn)
Sư phụ có thể vào TeamVier để can thiệp vào máy em
Rắc rối quá đi mất
Tiếc là tôi không ngồi trên máy bạn, nếu không tôi tin rằng có thể biết được đó là lỗi gì
Vấn đề độ dài ký tự ta loại ra (vì chuổi của bạn không vượt quá 255). Vậy ta có thể nghĩ đến dấu phân cách. Bạn thử vào Control Panel, cho mọi thứ trở về mặc định như lúc mới cài Windows xem (tức dấu thập phân là dấu chấm, dấu phân cách ngàn là dấu phẩy, dấu phân cách công thức là dấu phẩy)... xong thử lại code!
(Tôi dùng Windows 7, Office 2010, có vài thứ không giống trên máy của bạn)
Anh test trên excel 2003 đấy chứ? Lạ thật code đơn giản thế mà vẫn không tìm ra lỗi gìTest thấy rất bình thường, đã thử chuyển dấu phân cách từ dấu chấm thành dấu phẩy từ Control Panel ... cũng ... bình thường luôn!
Chẳng thấy lỗi nào phát sinh cho dù mình thử hàng chục dòng có giá trị lớn hơn 0 hay 1 dòng vậy tại sao ta?
Sư phụ có thể vào TeamVier để can thiệp vào máy em
1. Mình nhập các số đó từ bàn phím (cũng đã kiểm tra kiểu dữ liệu)Có thể bạn bị các trường hợp sau:
1) Số liệu ở dạng có dấu nháy trước số, như '39
2) Ô select chứa chuỗi!
1. Mình nhập các số đó từ bàn phím (cũng đã kiểm tra kiểu dữ liệu)
2. Cũng file đó Test trên excel 2007 vẫn bình thường
Sub TraThep()
Dim Arr As String
Dim Rng As Range, MyRange As Range
[COLOR=#008000]'On Error Resume Next[/COLOR]
For Each Rng In Selection
If [COLOR=#ff0000][B]Val([/B][/COLOR]Rng.Value[B][COLOR=#ff0000])[/COLOR][/B] > 0 Then
Arr = TraCotThep([COLOR=#ff0000][B]Val([/B][/COLOR]Rng.Value[B][COLOR=#ff0000])[/COLOR][/B], Sheet1.Range("L3").Value, Sheet1.Range("L4").Value)
With Rng.Offset(, 3).Validation
.Delete
.Add 3, , , Arr
End With
End If
Next
End Sub
Vẫn không được anh ạ, cái này cũng đã được thử rồiVậy chịu khó sửa lại code chút đi:
Mã:Sub TraThep() Dim Arr As String Dim Rng As Range, MyRange As Range [COLOR=#008000]'On Error Resume Next[/COLOR] For Each Rng In Selection If [COLOR=#ff0000][B]Val([/B][/COLOR]Rng.Value[B][COLOR=#ff0000])[/COLOR][/B] > 0 Then Arr = TraCotThep([COLOR=#ff0000][B]Val([/B][/COLOR]Rng.Value[B][COLOR=#ff0000])[/COLOR][/B], Sheet1.Range("L3").Value, Sheet1.Range("L4").Value) With Rng.Offset(, 3).Validation .Delete .Add 3, , , Arr End With End If Next End Sub
Vẫn không được anh ạ, cái này cũng đã được thử rồi
Sub TraThep()
Dim Arr As String
Dim Rng As Range, MyRange As Range
'On Error Resume Next
For Each Rng In Selection
If [B][COLOR=#ff0000]Val[/COLOR](Rng.Value)[/B] > 0 Then
Arr = TraCotThep([B][COLOR=#ff0000]Val[/COLOR](Rng.Value), [COLOR=#ff0000]Val[/COLOR](Sheet1.Range("L3").Value), [/B][B][COLOR=#ff0000]Val[/COLOR][/B][B](Sheet1.Range("L4").Value)[/B])
With Rng.Offset(, 3).Validation
.Delete
.Add 3, , , Arr
End With
End If
Next
End Sub
Và cái này cũng đã từng thử rồi anh ơi.Thử tiếp thêm 1 lần nữa xem sao!
Mã:Sub TraThep() Dim Arr As String Dim Rng As Range, MyRange As Range 'On Error Resume Next For Each Rng In Selection If [B][COLOR=#ff0000]Val[/COLOR](Rng.Value)[/B] > 0 Then Arr = TraCotThep([B][COLOR=#ff0000]Val[/COLOR](Rng.Value), [COLOR=#ff0000]Val[/COLOR](Sheet1.Range("L3").Value), [/B][B][COLOR=#ff0000]Val[/COLOR][/B][B](Sheet1.Range("L4").Value)[/B]) With Rng.Offset(, 3).Validation .Delete .Add 3, , , Arr End With End If Next End Sub
Và cái này cũng đã từng thử rồi anh ơi.
Tình hình trông có vẽ căng nhỉ
Mỗi số liệu có nhiều nghiệm vậy bạn, các nghiệm ấy đưa vào Validation (không phải combobox) để người dùng chọn tùy ý họ để phù hợp với kết cầu họ đã thiết kếxin lỗi cho mình cắt ngang 1 tí..mình sử dụng bản excel anh hoài, tức là khi dùng hàm tracotthep (Fa,giới hạn tỉ lệ tăng,số thanh tối thiểu ) nó chỉ ra có 1 kết quả..làm sao để có thể hiện thị đủ kết quả trong chương trình test để mình sử dụng công cụ combo box để lựa chọn.Mình xin cảm ơn
Mình không muốn là combobox vì sử dụng nó cần đến code của file dữ liệu. Ý mình file này sau chuyển thành AddIn sẽ sử dụng được cho bất kỳ file nào (mà các file này thông không có code) nên mình sử dụng validationÝ tưởng của mình là khi mà gõ hàm xong...nó sẽ ra 1 danh sách kết quả...mình sẽ đưa vào cái Combo box làm cái list để lựa chọn.Cái Validation bạn nói tới mình chưa nghiên cứu bao giờ..trước tiên là cái hàm mình gõ xong nó chỉ ra có 1 kết quả à L bạn có thể nói rõ cho mình được không.Mình chỉ là gà mờ trong lĩnh vực này..chân thành cảm ơn bạn
Mỗi số liệu có nhiều nghiệm vậy bạn, các nghiệm ấy đưa vào Validation (không phải combobox) để người dùng chọn tùy ý họ để phù hợp với kết cầu họ đã thiết kế
(Nghĩa vào tin nhắn riêng đọc ID và Pass đi)
Sub TraThep()
Dim Arr, Rng As Range
For Each Rng In Selection
If Val(Rng.Value) > 0 Then
Arr = TraCotThep(Val(Rng.Value), Val(Sheet1.Range("L3").Value), Val(Sheet1.Range("L4").Value))
With Rng.Offset(, 3).Validation
.Delete
.Add xlValidateList, , , Arr
End With
End If
Next
End Sub
Không đúng rồi, cũng như mình nhấn Alt+F8 chạy thủ tục "TraThep" thôiHiểu nguyên do rồi! Với Excel 2003 khi bạn dùng nút lệnh đồng thời lại dùng Selection vì thế ta bấm vào nút lệnh nó lại ngầm hiểu nút lệnh chính là cái nó đang select vì thế phát sinh lỗi, nếu chạy bình thường sẽ không sao.
=> Gán phím tắt cho Macro là chắc cú (Ctrl+Shift+W chẳng hạn) và không dùng nút lệnh!
Mã:Sub TraThep() Dim Arr, Rng As Range For Each Rng In Selection If Val(Rng.Value) > 0 Then Arr = TraCotThep(Val(Rng.Value), Val(Sheet1.Range("L3").Value), Val(Sheet1.Range("L4").Value)) With Rng.Offset(, 3).Validation .Delete .Add xlValidateList, , , Arr End With End If Next End Sub
Không đúng rồi, cũng như mình nhấn Alt+F8 chạy thủ tục "TraThep" thôi
(Sao không thấy Nghĩa vào máy mình vậy)
File của mình bỏ các hàm Val() rồi nhấn Alt+F8 nó không còn lỗi nữa, file Nghĩa nhấn tổ hợp phím Ctrl+Shift+W vẫn bị lỗi, nếu bỏ các hàm Val() thì nhấn Ctrl+Shift+W hết lỗi liền àThử đi nha! Mình đã test kỹ rồi đấy!
File của mình bỏ các hàm Val() rồi nhấn Alt+F8 nó không còn lỗi nữa, file Nghĩa nhấn tổ hợp phím Ctrl+Shift+W vẫn bị lỗi, nếu bỏ các hàm Val() thì nhấn Ctrl+Shift+W hết lỗi liền à
Cảm ơn Nghĩa rất nhiều
Rng.Offset(, 3)[COLOR=#ff0000].Select[/COLOR]
With [COLOR=#ff0000]Selection[/COLOR].Validation
.Delete
.Add 3, , , Arr
End With
Đã test kỹ: 2007, 2010 chạy bình thường. Riêng 2003 bị báo lỗi.
Sửa thế này thì hết:
Mã:Rng.Offset(, 3)[COLOR=#ff0000].Select[/COLOR] With [COLOR=#ff0000]Selection[/COLOR].Validation .Delete .Add 3, , , Arr End With
Hiểu nguyên do rồi! Với Excel 2003 khi bạn dùng nút lệnh đồng thời lại dùng Selection vì thế ta bấm vào nút lệnh nó lại ngầm hiểu nút lệnh chính là cái nó đang select vì thế phát sinh lỗi, nếu chạy bình thường sẽ không sao.
=> Gán phím tắt cho Macro là chắc cú (Ctrl+Shift+W chẳng hạn) và không dùng nút lệnh!
Mã:Sub TraThep() Dim Arr, Rng As Range For Each Rng In Selection If Val(Rng.Value) > 0 Then Arr = TraCotThep(Val(Rng.Value), Val(Sheet1.Range("L3").Value), Val(Sheet1.Range("L4").Value)) With Rng.Offset(, 3).Validation .Delete .Add xlValidateList, , , Arr End With End If Next End Sub
Quá chuẩn luôn, kể cả quét chọn rồi nhấn nút vẫn chạy bình thường. Em thấy 2 cách có vẻ giống nhau, Anh có thể nói rõ hơn nguyên nhân được không?Đã test kỹ: 2007, 2010 chạy bình thường. Riêng 2003 bị báo lỗi.
Sửa thế này thì hết:
Mã:Rng.Offset(, 3)[COLOR=#ff0000].Select[/COLOR] With [COLOR=#ff0000]Selection[/COLOR].Validation .Delete .Add 3, , , Arr End With
Ghi chú:
Test file bài 6
dấu phân cách của hệ thống không liên quan
Quá chuẩn luôn, kể cả quét chọn rồi nhấn nút vẫn chạy bình thường. Em thấy 2 cách có vẻ giống nhau, Anh có thể nói rõ hơn nguyên nhân được không?
Cảm ơn anh rất nhiều. Ủa, bài anh sao em không thấy nút cảm ơn nhỉ?
Chính xác là vậy! Như bài này em đã nói:
Hỏng chính xác chút nào.
File bài 6 để nguyên câu lệnh For Each Rng In Selection
Chỉ sửa như chỗ màu đỏ, vẫn dùng nút lệnh.
Nói thêm:
1. Để nguyên code như cũ, thì bị lỗi. Nhưng khi debug, thấy các dòng lệnh phía trên dòng lệnh add vẫn chạy bình thường: Arr đã có 1 giá trị chuỗi nào đó sau vòng lặp For Each Rng in Selection. Rà chuột vào biến Arr sẽ thấy giá trị này.
Nếu lỗi do seletion bị lầm tưởng là commmandbutton, thì sẽ lỗi Type Miss Match ngay câu lệnh For Each Rng in Selection.
2. Record 1 macro gán validation, sau đó thay selection.validation bằng Cells(1, 1).Validation rồi chạy không dùng nút lệnh, vẫn lỗi.
Sub TraThep()
Dim Arr As String
Dim Rng As Range, MyRange As Range
'On Error Resume Next
For Each Rng In Selection
If Rng.Value > 0 Then
Arr = TraCotThep(Rng.Value, Sheet1.Range("L3").Value, Sheet1.Range("L4").Value)
With Rng.Offset(, 3).Validation
.Delete
[B][COLOR=#ff0000]ActiveCell.Select [/COLOR][/B]' thêm vào
.Add 3, , , Arr
End With
End If
Next
End Sub
Thế Sư phụ giải thích vì sao chạy Macro trực tiếp thì không bị lỗi, kể cả code bài 6? mà bấm nút lệnh thì lỗi.
Đệ hiểu nôm na vì tại thời điểm .Add 3, , , Arr không có đối tượng (range) nào trên Cells được chọn, do trước đó đã bấm nút lệnh (có lẽ Bác Bill đã phát hiện và sửa sai ở phiên bản sau).
Vẫn code bài 6 (hoặc bài nào cũng được), nếu thêm lệnh chọn một ô, hoặc một vùng hoặc thậm chí cả bảng tính miễn sao là range thì sẽ hết lỗi.
Ví dụ: thay câu
.Add 3, , , Arr
Bằng
Range("A100").Select ' thêm vào
.Add 3, , , Arr
Sẽ hết lỗi và cũng không sai kết quả
Nhưng hợp lý nhất là:
ActiveCell.Select ' thêm vào
.Add 3, , , Arr
Vì vậy Hoàng Trọng Nghĩa nói đã gần đúng!
Tóm lại, code bài 6 (code của Nghĩa chắc cũng vậy) chỉ thêm một câu ActiveCell.Select là được:
Mã:Sub TraThep() Dim Arr As String Dim Rng As Range, MyRange As Range 'On Error Resume Next For Each Rng In Selection If Rng.Value > 0 Then Arr = TraCotThep(Rng.Value, Sheet1.Range("L3").Value, Sheet1.Range("L4").Value) With Rng.Offset(, 3).Validation .Delete [B][COLOR=#ff0000]ActiveCell.Select [/COLOR][/B]' thêm vào .Add 3, , , Arr End With End If Next End Sub
Sub TraThep()
If ActiveSheet.Name = "Sheet1" Then Exit Sub
Dim Arr As String, Rng As Range
[COLOR=#0000cd][B]Selection.Select[/B][/COLOR]
For Each Rng In Selection
If Val(Rng.Value) > 0 Then
Arr = TraCotThep(Val(Rng.Value), Sheet1.Range("L3").Value, Sheet1.Range("L4").Value)
With Rng.Offset(, 3).Validation
.Delete
.Add xlValidateList, , , Arr
End With
End If
Next
End Sub
Đệ hiểu nôm na vì tại thời điểm .Add 3, , , Arr không có đối tượng (range) nào trên Cells được chọn, do trước đó đã bấm nút lệnh
Thế Sư phụ giải thích vì sao chạy Macro trực tiếp thì không bị lỗi, kể cả code bài 6? mà bấm nút lệnh thì lỗi.
Vậy tại thời điểm For Each Rng in Selection đã bấm nút lệnh chưa? Chắc chắn là cũng đã nhấn rồi chứ?
Nếu selection là nút lệnh thì phải báo lỗi "object doesn't support this property or method" ngay từ câu lệnh này:
For Each Rng In Sheet2.CommandButton2
Nhưng để nguyên selection nó chẳng báo lỗi, vây selection có phải là nút lệnh gì đâu?
Đây có thể chính là lỗi của 2003. Lúc thế này, lúc thế khác.
Vậy tại thời điểm For Each Rng in Selection đã bấm nút lệnh chưa? Chắc chắn là cũng đã nhấn rồi chứ?
Nếu selection là nút lệnh thì phải báo lỗi "object doesn't support this property or method" ngay từ câu lệnh này:
For Each Rng In Sheet2.CommandButton2
Nhưng để nguyên selection nó chẳng báo lỗi, vây selection có phải là nút lệnh gì đâu?
Đây có thể chính là lỗi của 2003. Lúc thế này, lúc thế khác.
Thay vì thêm Select trong vòng lặp thì chuyển nó ra ngoài sẽ nhanh hơn và dĩ nhiên không bị chớp nhiều hơn:
Mã:Sub TraThep() If ActiveSheet.Name = "Sheet1" Then Exit Sub Dim Arr As String, Rng As Range [COLOR=#0000cd][B]Selection.Select[/B][/COLOR] For Each Rng In Selection If Val(Rng.Value) > 0 Then Arr = TraCotThep(Val(Rng.Value), Sheet1.Range("L3").Value, Sheet1.Range("L4").Value) With Rng.Offset(, 3).Validation .Delete .Add xlValidateList, , , Arr End With End If Next End Sub
QUÁI LẠ!!!!!!!!!!
Rảnh rỗi hãy sửa lại toàn bộ code đi, tôi thấy nó lượm thượm quá ---> Cóc muốn xem luôn
Muốn thành 1 addIn thì nên viết cho thật chuẩn
Vậy Thầy "chuẩn hóa" cho bạn ấy luôn đi! Với con mắt tụi em vậy là được rồi hihihihii.
Em cũng đang định muốn nhờ vấn đề này đâyTôi cũng muốn lắm (ngứa mắt). Nhưng điều đầu tiên là tác giả phải giải thích rõ hàm TraCotThep nó làm cái gì? Tính toán thế nào? Ý nghĩa của các biến? vân vân...
Phần còn lại là code chỉ là chuyện nhỏ
Tôi cũng muốn lắm (ngứa mắt). Nhưng điều đầu tiên là tác giả phải giải thích rõ hàm TraCotThep nó làm cái gì? Tính toán thế nào? Ý nghĩa của các biến? vân vân...
Phần còn lại là code chỉ là chuyện nhỏ
Như anh đã nói ở bài 6, khi người ta tính toán một loạt rất nhiều mặt cắt thì mình tra từng cái 1 thì khá mất thời gian, nên trường hợp sau là tra một lúc nhiều mặt cắtem vẫn chưa hiểu tác dụng của mục tra thép sau để làm gì. em thấy như củ là ok rồi, có diện tích thép, mình đưa ra phương án.
bác ơi sao bảng của bác nếu nhập giá trị là 87,8 chẳng hạn thì nó báo lỗi không xuất ra kết quả dc,nếu nhập giá trị nhỏ như 14,15 thì lại được?Thử đi nha! Mình đã test kỹ rồi đấy!
1. Mình thử với số trên có trường hợp nó không có kết quả vì với diện tích trên, bạn đặt giới hạn tăng diện tích 10%, số thanh là 5 thì làm sao mà có???. Bạn thay đổi các điều kiện giới hạn thử xembác ơi sao bảng của bác nếu nhập giá trị là 87,8 chẳng hạn thì nó báo lỗi không xuất ra kết quả dc,nếu nhập giá trị nhỏ như 14,15 thì lại được?
anh ơi nếu ví dụ là Fa=67.34 h=300 cm,số lượng thanh thép tối đa 14,tỷ lệ tăng diện tích 5,nếu chọn 1 loại thép kết quả nó ra 9f32 không hợp lý lắm,nếu nó có thể ra 14f25 thì hợp lý hơn? anh có thể sửa lại được không ạ?1. Mình thử với số trên có trường hợp nó không có kết quả vì với diện tích trên, bạn đặt giới hạn tăng diện tích 10%, số thanh là 5 thì làm sao mà có???. Bạn thay đổi các điều kiện giới hạn thử xem
2. Khi mở file có menu để bạn thực hiện
Chẳng có gì để sửa, chỉ mở rộng vùng dữ liệu là được màanh ơi nếu ví dụ là Fa=67.34 h=300 cm,số lượng thanh thép tối đa 14,tỷ lệ tăng diện tích 5,nếu chọn 1 loại thép kết quả nó ra 9f32 không hợp lý lắm,nếu nó có thể ra 14f25 thì hợp lý hơn? anh có thể sửa lại được không ạ?
Trong file bạn có vùng thép tính toán F'a tại P14Anh ơi giúp em với,em lập 1 bảng excel, nhập các giá trị M,N,các điều kiện khác để tính ra Fa,Fa', bây giờ anh giúp em kết hợp 2 bảng của em với của anh là 1 được không ạ? tức là tính ra được Fa,Fa' ta có thể tra ra luôn thép không ạ?
Được, nhưng mình thấy không cần thiết doem cảm ơn anh rất nhiều,anh ơi nếu bây giờ mà viết nó thành 1 phần mềm mà chỉ cần nhập các thông số M,F1,b,h,các thông số khác mà em bôi màu như trong bảng của em lập ý,để cho ra thép luôn được ko ạ hì,như thế thì quá tiện luôn![]()