Những câu hỏi về code, xin giải thích các code, đề nghị các bạn gửi vào đây

Liên hệ QC
Status
Không mở trả lời sau này.

ST-Lu!

Love Wingchun
Tham gia
19/8/08
Bài viết
730
Được thích
546
Nghề nghiệp
Xích lô một thời
Kể từ hôm nay, tất cả những câu hỏi nhờ giải thích dùm một đoạn code, hay là hỏi những vấn đề linh tinh gì liên quan đến cách viết code, đề nghị các bạn gửi chung vào đây.

Những đề tài mới với tiêu đề: "Nhờ giải thích dùm đoạn code", mà không nói rõ là code gì, code dùng để làm gì, sẽ bị xóa.

BQT

----------------------------------------------------------------------------------------------------------------


Em xin được hỏi 2 đoạn code sau có tương đương nhau ?

Cells(Cells.Rows.Count, 1).End(xlUp).Row có tương đương với [A65000].End(xlup).row

Cám ơn các anh chỉ giáo
 
Chỉnh sửa lần cuối bởi điều hành viên:
- Em xin hỏi đóng file khi đang ở Sheet data thì khi mở form lại thì chạy được, còn đóng file khi ở sheet NTX thì khi mở form lên k chạy được? có phải form phụ thuộc vào thuộc tính nào đó của sheet làm việc sau cùng không ? nhờ các huynh chỉ giáo cảm ơn!!
 
Upvote 0
- Em xin hỏi đóng file khi đang ở Sheet data thì khi mở form lại thì chạy được, còn đóng file khi ở sheet NTX thì khi mở form lên k chạy được? có phải form phụ thuộc vào thuộc tính nào đó của sheet làm việc sau cùng không ? nhờ các huynh chỉ giáo cảm ơn!!
Form show chẳng liên quan gì đến sheet cả, tức đứng ở sheet nào cũng có thể gọi form... Còn bạn bị lỗi thì chỉ bạn mới biết... vì code do bạn viết, có ràng buộc gì đó làm sao mọi người biết được
 
Upvote 0
Form show chẳng liên quan gì đến sheet cả, tức đứng ở sheet nào cũng có thể gọi form... Còn bạn bị lỗi thì chỉ bạn mới biết... vì code do bạn viết, có ràng buộc gì đó làm sao mọi người biết được
- Thì ra nó bị 2 công thức này, khi em muốn tăng dần số tt lấy từ sheet data?
Me.sohh.Value = WorksheetFunction.Max(S104.Range([c2], [C65432].End(xlUp))) + 1
Me.soID.Value = WorksheetFunction.Max(S104.Range([Q2], [Q65432].End(xlUp))) + 1
- Sư phụ chỉ giáo, cám ơn.
 
Upvote 0
- Thì ra nó bị 2 công thức này, khi em muốn tăng dần số tt lấy từ sheet data?
Me.sohh.Value = WorksheetFunction.Max(S104.Range([c2], [C65432].End(xlUp))) + 1
Me.soID.Value = WorksheetFunction.Max(S104.Range([Q2], [Q65432].End(xlUp))) + 1
- Sư phụ chỉ giáo, cám ơn.
Câu lệnh này:
WorksheetFunction.Max(S104.Range([c2], [C65432].End(xlUp))) + 1

WorksheetFunction.Max(S104.Range([Q2], [Q65432].End(xlUp))) + 1
sai hoàn toàn ---> Nó chỉ đúng khi bạn đứng tại sheet S104 mà thôi
Phải vầy mới đúng khi đứng ở bất cứ sheet nào:
WorksheetFunction.Max(S104.Range(S104.[c2], S104.[C65432].End(xlUp))) + 1
và:
WorksheetFunction.Max(S104.Range(S104.[Q2], S104.[Q65432].End(xlUp))) + 1
 
Upvote 0
Câu lệnh này:
WorksheetFunction.Max(S104.Range([c2], [C65432].End(xlUp))) + 1

WorksheetFunction.Max(S104.Range([Q2], [Q65432].End(xlUp))) + 1
sai hoàn toàn ---> Nó chỉ đúng khi bạn đứng tại sheet S104 mà thôi
Phải vầy mới đúng khi đứng ở bất cứ sheet nào:
WorksheetFunction.Max(S104.Range(S104.[c2], S104.[C65432].End(xlUp))) + 1
và:
WorksheetFunction.Max(S104.Range(S104.[Q2], S104.[Q65432].End(xlUp))) + 1
- Cảm ơn sư phụ nhiều, sư phụ bao giờ cũng sẵn lòng giúp đỡ mọi người, thật đáng trân trọng!!
 
Upvote 0
Không xem file nhưng đoán nó là 1 name (vào Define name xem thử)
--------------------------

Code này mà bạn chạy được bình thường kể cũng kỳ... Có rất nhiều dòng khai báo biến trùng nhau, chẳng hạn có 2 dòng Dim Temp$, 2 dòng Dim Msg.. vân vân... nếu chạy chắc chắn sẽ báo lỗi "Duplicate declaration in current scope"
--------------------------
Ngoài ra, nếu không có file thì chẳng biết gì mà giải thích cho bạn
Không fải như vậy thầy ạ nó không nắm trong Define name. Em gửi file lên đây thầy chỉ cho em nhé!
 

File đính kèm

  • BCa.zip
    593.8 KB · Đọc: 30
Upvote 0
Không fải như vậy thầy ạ nó không nắm trong Define name. Em gửi file lên đây thầy chỉ cho em nhé!
Tôi làm biếng xử lý những file bị khóa (dù rằng cái khóa của bạn chẳng là cái đinh gì)
Tốt nhất trước khi đưa file lên, hãy bỏ mọi thứ liên quan đến protect đi ---> Nhìn nó chỉ tổ mất cảm tình
 
Upvote 0
Tôi làm biếng xử lý những file bị khóa (dù rằng cái khóa của bạn chẳng là cái đinh gì)
Tốt nhất trước khi đưa file lên, hãy bỏ mọi thứ liên quan đến protect đi ---> Nhìn nó chỉ tổ mất cảm tình
passshet là trắng thầy ạ!
passwoorbok là 123 thầy ạ!
Chỉ cần vào VBA thầy cũng thừa biết mà.
Nếu mà xoá pass đi lại file sửa lại code nên cũng hơi mất thời gian thầy ạ!
 
Upvote 0
Xem hình minh họa để thấy rằng Range("NA") chính là 1 Define Name

untitled.JPG


File của bạn chẳng lẽ bạn không biết? Hoặc đây không phải file của bạn chăng?
 
Upvote 0
Vâng file này không file là do em lập!
Làm thế nào để ẩn hiện được name vậy thầy?
 
Upvote 0
PHP:
Sheets(5).Select
    Application.CommandBars("File").Controls(5).Visible = False
    Application.CommandBars("File").Controls(6).Visible = False
    Application.CommandBars("View").Controls(4).Visible = False
    Application.CommandBars("Tools").Controls(13).Visible = False
    Application.CommandBars("Tools").Controls(14).Visible = False
    Application.CommandBars("Tools").Controls(15).Visible = False
    Application.CommandBars("Tools").Controls(17).Visible = False
    ActiveWindow.DisplayWorkbookTabs = True
Thầy giải thích cho em đoạn này với ạ! em không biết Sheets(5) là sheet nào?
Và các CommandBars trên là cái nào ạ!
 
Upvote 0
PHP:
Sheets(5).Select
    Application.CommandBars("File").Controls(5).Visible = False
    Application.CommandBars("File").Controls(6).Visible = False
    Application.CommandBars("View").Controls(4).Visible = False
    Application.CommandBars("Tools").Controls(13).Visible = False
    Application.CommandBars("Tools").Controls(14).Visible = False
    Application.CommandBars("Tools").Controls(15).Visible = False
    Application.CommandBars("Tools").Controls(17).Visible = False
    ActiveWindow.DisplayWorkbookTabs = True
Thầy giải thích cho em đoạn này với ạ! em không biết Sheets(5) là sheet nào?
Và các CommandBars trên là cái nào ạ!
Code này chỉ hoạt động được trên Excel 2003 mà thôi
Application.CommandBars(" File").Controls(5).Visible = False có nghĩa là ẩn Button thứ 5 trong menu File (nó là nút Save As)
Các câu lệnh khác tương tự
Sheets(5) nghĩa là Sheet thứ 5 tính từ trái sang phải (số 5 là số thứ tự)
 
Upvote 0
T­hưa thầy Sheets(5) nghĩa là Sheet thứ 5 tính từ trái sang phải (số 5 là số thứ tự) có fải tương đuơng với khi mở cửa số VBA nên thì nó tính từ trên xuống dưới vị trí số 5 đúng không thầy? Như vậy theo file đính kèm nó là sheet13 (Name List)?
Sheets(5) khác Sheet5?
 
Upvote 0
T­hưa thầy Sheets(5) nghĩa là Sheet thứ 5 tính từ trái sang phải (số 5 là số thứ tự) có fải tương đuơng với khi mở cửa số VBA nên thì nó tính từ trên xuống dưới vị trí số 5 đúng không thầy? Như vậy theo file đính kèm nó là sheet13 (Name List)?
Sheets(5) khác Sheet5?
Tôi không để ý vụ này... Nói chung là bạn cứ nhìn xuống Sheet tab, đếm từ trái sang phải, sheet nằm ở vị trí số 5 là Sheets(5) (đương nhiên, lúc này các sheet phải đang hiện toàn bộ)
Điều này có nghĩa là nếu bạn đổi chổ vị trí các sheet (bằng cách dùng chuột nắm kéo thả) thì Sheets(5) mới có thể không phải là Sheet(5) của lúc trước
 
Upvote 0
PHP:
      Case 0: .Interior.ColorIndex = 5: .Font.ColorIndex = 6
      Case 1: .Interior.ColorIndex = 3: .Font.ColorIndex = 5
      Case 2: .Interior.ColorIndex = 6: .Font.ColorIndex = 3
Xin hỏi GPE với code trên ta có màu chữ và màu nền theo số.
Nhưng nếu muốn biết màu nào tương ứng với số nào thì xem ở đâu ạ?
Em dùng Office207 sau đó ghi marco để xem mã màu thì số mã màu nó thể hiện khác với code trên quá,vd:
PHP:
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65280
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
 
Upvote 0
Xin mọi người chỉ dùm code xoá từng dòng có chứa dữ liệu trong sheet. Thanks

Private Sub CommandButton4_Click()
'xoá tung dong trong sheet vidu
Sheets("vidu").Activate
irow = Application.WorksheetFunction.CountA(Range("B:B")) + 1
Rows("irow:irow").clearcontens
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Hic, mình vừa tập tẹ học VBA, có đoạn code này mình chưa hiểu, mong các bạn giải thích giúp mình

Đây là đoạn code đánh STT tự động, nguyên gốc nó thế này:

HTML:
Sub SoTT(Rng As Range)
With Rng
    .Resize(200, 1).Clear
    .Value = Evaluate("=row(R:R)")
    .NumberFormat = "00"
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With
End Sub

- Thứ nhất, Rng ở đây là vùng nào? từ ô nào tới ô nào? Sao mình không thấy khai báo?
- Thứ hai, đoạn:
HTML:
.Resize(200, 1).Clear
Có phải là từ vùng Rng mở rộng ra thêm 200 hàng và 01 cột? Hay thay đổi độ rộng của Rng thành 200 hàng và 01 cột?
- Thứ ba, đoạn dưới đây có nghĩa gì vậy các bạn?
HTML:
.Value = Evaluate("=row(R:R)")
Mình đã tra google cái vụ Evaluate cả ngày mà không hiểu lắm.

Rất mong các bạn giải thích giúp mình, xin chân thành cảm ơn các bạn.
 
Upvote 0
- Thứ nhất, Rng ở đây là vùng nào? từ ô nào tới ô nào? Sao mình không thấy khai báo?
Rng là bất kỳ vùng nào tùy ý bạn ---> Tức muốn dùng nó sẽ phải viết thêm 1 sub khác để khai báo rõ ràng Rng là cái giống gì
- Thứ hai, đoạn:
HTML:
.Resize(200, 1).Clear
Có phải là từ vùng Rng mở rộng ra thêm 200 hàng và 01 cột? Hay thay đổi độ rộng của Rng thành 200 hàng và 01 cột?
Từ cell đầu tiên của Rng, mở rộng ra 200 dòng, 1 cột --> Vậy bất kể Rng là bao nhiêu dòng, cột, sau khi Resize nó cũng sẽ có kích thước 200 dòng, 1 cột
- Thứ ba, đoạn dưới đây có nghĩa gì vậy các bạn?
HTML:
.Value = Evaluate("=row(R:R)")
Mình đã tra google cái vụ Evaluate cả ngày mà không hiểu lắm.

Rất mong các bạn giải thích giúp mình, xin chân thành cảm ơn các bạn.
.Value = Evaluate("=row(R:R)") nghĩa là Vùng Rng sẽ có giá trị = Evaluate("=row(R:R)")
Còn Evaluate("=row(R:R)") là gì? Rất đơn giản ta có thể thí nghiệm thế này:
- Quét chọn 1 vùng 1 cột, nhiều dòng (mấy dòng tùy ý)
- Gõ vào thanh Formula công thức =row(R:R) rồi bấm Ctrl + Shift + Enter
-------------------
Kết luận: Để chạy code này, ta phải viết thêm 1 Sub nữa, chẵng hạn:
PHP:
Sub test()
  SoTT Selection
End Sub
Quét chọn 1 vùng tùy ý (nhiều dòng, 1 cột) rồi chạy sub Test trên (tất nhiên trong Module vẫn phải có Sub SoTT)
 
Upvote 0
Cảm ơn bạn, nhưng còn chỗ này mình chưa hiểu:

Gồm 02 phần là Evaluate () và row(R:R) như vậy:
- Evaluate nghĩa là gì? Chức năng của nó ntn?
- Bản thân hàm Row() thì mình biết, nhưng đối só của nó R:R có nghĩa là sao bạn?

Rất mong bạn giải thích rõ hơn giúp mình, do mới học nên hỏi hơi ngớ ngẩn.
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom