Chuyên đề giải đáp những thắc mắc về code VBA (16 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

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