Chuyên đề giải đáp những thắc mắc về code VBA

Liên hệ QC

maytinhvp01

Thành viên thường trực
Tham gia
27/7/13
Bài viết
390
Được thích
179
Mình muốn nhờ giải thich câu lệnh " If Ran.Cells(d, c) > max Then max = Ran.Cells(d, c) "
trong ví du:
Public Function LonNhat(Ran As Range)
Dim max As Double, v As Integer, d As Integer, c As Integer
max = Ran.Cells(1, 1)
For d = 1 To Ran.Rows.Count
For c = 1 To Ran.Columns.Count
If Ran.Cells(d, c) > max Then max = Ran.Cells(d, c)
Next c
Next d
v = Tim(max, Ran)
LonNhat = max
End Function
-------------------------------------------------------
[INFO1]Thông báo:
Vì topic này:
http://www.giaiphapexcel.com/forum/...ải-thích-các-code-đề-nghị-các-bạn-gửi-vào-đây
đã quá dài nên BQT đóng lại.
Nay tôi mở topic mới với cùng chủ đề: GIẢI THÍCH NHỮNG THẮC MẮC VỀ CODE
Các bạn nếu có nhu cầu giải thích code, vui lòng post tại đây nhé
NDU96081631

[/INFO1]
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mã:
Range("D6:D" & i).FormulaR1C1 = Range("D5").FormulaR1C1
Bạn sửa vậy xem sao.
Mã:
Range("D6:D" & i).Formula = Range("D5").Formula
Mã:
Range("D5").Copy
Range("D6:D" & i).PasteSpecial Operation:=xlPasteFormula

Dạ Em làm được rồi. Cảm ơn A/C rất nhiều!
 
Upvote 0
Xin cho hỏi GPE,
Mình có thể thay code sau:
Mã:
Dim arrReMain() As Integer
    ReDim arrReMain(4 To iLastRow) As Integer
    For i = 4 To iLastRow
        arrReMain(i) = Sheet1.Range("E" & i).Value
    Next i
bằng phương cách nào khác mà mình không dùng vòng lặp For không ạ?
Em muốn giữ chỉ số trong arrRemain đi từ 4 tới iLastRow ạ.

Cám ơn GPE nhiều.
 
Upvote 0
Em đang tập tành code. Em muốn chọn dòng từ 12 đến dòng cuối (i). Nếu em thay i vào chỗ chữ đỏ số 30 thì lại bị lỗi. Mong Anh Chị chỉ giúp Em sửa thế nào để thay i được vào đó. Em cảm ơn A/C.
Sub Sort_Sh18()
Dim i As Long
i = Sheet18.Range("C" & Rows.Count).End(xlUp).Row
Sheet18.Rows("12:30").Select
End Sub
 
Upvote 0
Em đang tập tành code. Em muốn chọn dòng từ 12 đến dòng cuối (i). Nếu em thay i vào chỗ chữ đỏ số 30 thì lại bị lỗi. Mong Anh Chị chỉ giúp Em sửa thế nào để thay i được vào đó. Em cảm ơn A/C.
Sub Sort_Sh18()
Dim i As Long
i = Sheet18.Range("C" & Rows.Count).End(xlUp).Row
Sheet18.Rows("12:30").Select
End Sub
Sheet18.Rows("12:" & i).Select
 
Upvote 0
Xin cho hỏi GPE,
Mình có thể thay code sau:
Mã:
Dim arrReMain() As Integer
    ReDim arrReMain(4 To iLastRow) As Integer
    For i = 4 To iLastRow
        arrReMain(i) = Sheet1.Range("E" & i).Value
    Next i
bằng phương cách nào khác mà mình không dùng vòng lặp For không ạ?
Em muốn giữ chỉ số trong arrRemain đi từ 4 tới iLastRow ạ.

Cám ơn GPE nhiều.
Mã:
  eRow = Sheet1.Range("E" & Rows.Count).End(xlUp).Row
  arrReMain = Application.Transpose(Sheet1.Range("E4:E" & eRow).Value)
  ReDim Preserve arrReMain(4 To eRow)
 
Upvote 0
Xin cho hỏi GPE,
Mình có thể thay code sau:
Mã:
Dim arrReMain() As Integer
    ReDim arrReMain(4 To iLastRow) As Integer
    For i = 4 To iLastRow
        arrReMain(i) = Sheet1.Range("E" & i).Value
    Next i
bằng phương cách nào khác mà mình không dùng vòng lặp For không ạ?
Em muốn giữ chỉ số trong arrRemain đi từ 4 tới iLastRow ạ.

Cám ơn GPE nhiều.
Tại sao lại không muốn dùng For bạn? Nếu thực sự không muốn vậy thì dùng do ... loop
 
Upvote 0
Mã:
Rows("2:" & i).Sort [B2], 1
Dòng code trên Em đang sort cho cột B. Em chưa sort được thêm các cột. Anh Chị có thể giúp Em cách sort thêm được cột C và D. Em cảm ơn!
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ thầy coi lại cái https://www.giaiphapexcel.com/diendan/threads/chia-số-lượng-các-cỡ-theo-điều-kiện-để-đóng-thùng.151217/page-3 ở bài #48.
Em làm thế là do muốn trùng số hàng trong bản tính luôn ạ.
Cần gì phải trùng.
Mã:
Dim arrReMain As Variant
    arrReMain = Sheet1.Range("E4:E" & iLastRow).Value
    'Khi sử dụng thì điều chỉnh chỉ số cho phù hợp thôi
    'Ví dụ code của bạn dùng arrReMain(i) thì bây giờ là arrReMain(i -3, 1)
 
Upvote 0
Cần gì phải trùng.
Mã:
Dim arrReMain As Variant
    arrReMain = Sheet1.Range("E4:E" & iLastRow).Value
    'Khi sử dụng thì điều chỉnh chỉ số cho phù hợp thôi
    'Ví dụ code của bạn dùng arrReMain(i) thì bây giờ là arrReMain(i -3, 1)
hic.. lúc đó phải nhớ ... không thì lại khổ, còn nếu trùng thì dễ hình dung và làm không phải suy nghĩ ... nhớ ... và chỉnh
 
Upvote 0
mọi người cho mình hỏi mình đang ở file excel A, và có 1 Addins (trong Addins có form "Userform1")
vậy code ở file A viết như thế nào để gọi Userform1.show lên được (ThisWorkBook của Addins mình đổi tên thành TWBook rồi)
 
Upvote 0
Thử kiểm tra các GiaTri
Mã:
  eRow = Sheet1.Range("E" & Rows.Count).End(xlUp).Row
  arrReMain = Application.Transpose(Sheet1.Range("E4:E" & eRow).Value)
  ReDim Preserve arrReMain(4 To eRow)
  for i=4 to eRow
      GiaTri=arrReMain(i)' kiem tra ket qua
  next i
Máy tôi bị lỗi ngay dòng ReDim.
 
Upvote 0
Máy tôi bị lỗi ngay dòng ReDim.
dạ máy em cũng vậy....
Nhiều bài quá chắc mấy bạn bỏ qua. Đây là tôi viết ở bài #2.677
ReDim Preserve arrReMain(1 To erow - 3) nó mới chịu

Và tiện đây cũng hỏi lại bạn @thnghiachau, sao bạn không muốn dùng vòng lặp For...Next? Tôi có hỏi ở trên nhưng chắc bạn cũng không thấy.
 
Upvote 0
Web KT

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

Back
Top Bottom