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:
Bạn có thể áp dụng code sau, tuy nhiên đã chạy code rồi thì không ai đi làm phương pháp thủ công nữa cả

PHP:
Sub test_CopyData()
  CopyData [k9], [g3], -6, "Oshidashi Crown", "03.2019 CROWN.xlsm", 36, 5, True, False
End Sub
  Function CopyData(Rng1 As Range, _
  Rng2 As Range, _
  istep%, _
  Optional ByVal worksheetStr$ = "Oshidashi Crown", _
  Optional ByVal workbookStr$, _
  Optional ByVal stopLoop% = 36, _
  Optional ByVal stepLoop% = 5, _
  Optional ByVal RowAbsolute As Boolean = True, Optional ByVal ColumnAbsolute As Boolean = False)
    Dim i%
    For i = Rng1.Row To stopLoop Step stepLoop
      Cells(i, Rng1.Column).Value = "=" & IIf(workbookStr = "", "", "[" & workbookStr & "]") & worksheetStr & "!" & _
      Cells(i + istep, Rng2.Column).Address(RowAbsolute, ColumnAbsolute)
    Next i
  End Function
Cám ơn anh ạ. Tại em mới học. Nên mới thủ công thế ạ. Nhưng file đính kèm là 2 file em muốn links dữ liệu cho nhau. Do 2 file nằm trên 2 chỗ khác nhau. Nếu có thể phiền anh viết đoạn code cập nhật giúp ạ. Và hướng dẫn luôn cho em để các tháng tiếp theo em có thể tự làm ạ.
em cám ơn trước
 

File đính kèm

Upvote 0
Cám ơn anh ạ. Tại em mới học. Nên mới thủ công thế ạ. Nhưng file đính kèm là 2 file em muốn links dữ liệu cho nhau. Do 2 file nằm trên 2 chỗ khác nhau. Nếu có thể phiền anh viết đoạn code cập nhật giúp ạ. Và hướng dẫn luôn cho em để các tháng tiếp theo em có thể tự làm ạ.
em cám ơn trước
Bạn đăng bài mới, hỏi đúng chủ đề sẽ có người hỗ trợ bạn
 
Upvote 0
Sub GOMU()
Dim i As Integer
Dim j As Integer
For i = 2 To 251
For j = 5 To 35
If Cells(i, 4) = "KHSX" Then Cells(i, j) = "'[KH Thang 03.2019 GOMU + SHINSHEN.xlsm]gomu'!" & j & "$" & Cells(i, 39)
Next j
Next i
End Sub
Chào các thầy ạ. các thầy cho em hỏi 1 chút ạ.
Em đang khai báo j là cột. mà giờ em muốn khi j=1 thì nó trả về =cột A
j=2 thì trả về giá trị bằng cột B thì phải dùng hàm gì ạ
 
Upvote 0
Chào các thầy ạ. các thầy cho em hỏi 1 chút ạ.
Em đang khai báo j là cột. mà giờ em muốn khi j=1 thì nó trả về =cột A
j=2 thì trả về giá trị bằng cột B thì phải dùng hàm gì ạ
Bạn hỏi kỳ vậy.Mặc định j=1 là cột A rồi mà.Cần gì hàm nữa.Mà bạn gửi file lên xem.
 
Upvote 0
Bạn hỏi kỳ vậy.Mặc định j=1 là cột A rồi mà.Cần gì hàm nữa.Mà bạn gửi file lên xem.
Xin lỗi anh chị ạ. Tại em nói chưa vỡ lẽ. Cái đoạn code trên kia. Khi em để j chạy từ 5 đến 35. Khi chạy đoạn code nó hiện ra số luôn. Mà mục đích cuối cùng của em muốn là hiện ra tên cột ạ
 
Upvote 0
Upvote 0
Xin lỗi anh chị ạ. Tại em nói chưa vỡ lẽ. Cái đoạn code trên kia. Khi em để j chạy từ 5 đến 35. Khi chạy đoạn code nó hiện ra số luôn. Mà mục đích cuối cùng của em muốn là hiện ra tên cột ạ
Cột:
tenCot = Split(Cells(i, j).Addess(), "$")(1)
 
Upvote 0
Khi thử Code thì ta đơn giản những thứ khác đi, sao cho nó chạy đúng cái đã; Bạn thử với cái này, khi có trang 'GPE'
PHP:
Sub Test()
Dim I As Integer, J As Integer
For I = 2 To 36 Step 5
    For J = 8 To 13 Step 5
        Range("G" & I).Value = "=GPE!K$" & CStr(J)
        MsgBox Range("G" & I).Value, , Range("G" & I).Address
    Next J
Next I
End Sub
 
Upvote 0
Cột:
tenCot = Split(Cells(i, j).Addess(), "$")(1)
em đưa vào đoạn code trên không được ạ
Bài đã được tự động gộp:

Khi thử Code thì ta đơn giản những thứ khác đi, sao cho nó chạy đúng cái đã; Bạn thử với cái này, khi có trang 'GPE'
PHP:
Sub Test()
Dim I As Integer, J As Integer
For I = 2 To 36 Step 5
    For J = 8 To 13 Step 5
        Range("G" & I).Value = "=GPE!K$" & CStr(J)
        MsgBox Range("G" & I).Value, , Range("G" & I).Address
    Next J
Next I
End Sub
Thầy ơi.
là thế nào ạ
 
Upvote 0
Thì bạn tạo ra trang tính có tên là vậy; Trên trang đó nhập những số liệu khác nhau vào các ô trước khi chạy macro.
 
Upvote 0
Chào cả nhà,
Mình đang cần như sau:
Mình có 10 sheets (hoặc hơn). Mình muốn đánh số cho sheet thứ 4 trở đi đến hết, còn các sheets trước sheet mình đặt button thì không đánh số thì code như thế nào? Nhờ các bạn tư vấn giúp.
Tks tất cả.
 
Upvote 0
Chào cả nhà,
Mình đang cần như sau:
Mình có 10 sheets (hoặc hơn). Mình muốn đánh số cho sheet thứ 4 trở đi đến hết, còn các sheets trước sheet mình đặt button thì không đánh số thì code như thế nào? Nhờ các bạn tư vấn giúp.
Tks tất cả.
Bạn thử code sau
PHP:
Sub OrderSheets()
    Dim i%, K%
    For i = 1 to Worksheets.Count
        If i > 3 Then K = K + 1: Worksheets(i).Name = K & ". " & Worksheets(i).Name
    Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Sao không cho i chạy từ 4 vậy ta.Mà dùng thêm biến k nữa làm gì.
Đánh nhanh thắng nhanh với vấn đề cơ bản, vấn đề khó mới nên bỏ nhiều chất xám để tư duy, và sáng tạo.
Code viết không suy nghĩ quá 0.01% của bộ não
 
Upvote 0
Ai da, cám ơn bạn nha. Mình đưa yêu cầu thiếu thông tí xíu!!!
Mình muốn đánh số thứ tự trang (page number) cho sheet thứ 4 trở đi đến hết chứ không phải số của sheet.
 
Upvote 0
Chào cả nhà
Minh đang tập tành làm VBA, mình có tạo 1 userform (file đính kèm 2019-Test). Mình đang bị dừng lại ở chỗ tạo button OK để add new workbook, mình đã lên mạng tham khảo và có được dòng code để tạo workbook mới nhưng lại không thể copy hết 2 sheets từ file "BGmau.xls" (chỉ copy được sheet ChiTiet còn sheet BGgui thì lại không copy được) .Mong mọi người tham khảo và tư vấn giúp. Thanks all
 

File đính kèm

Upvote 0
Dear All.!
Cho em hỏi : em thấy một số người viết sub dạng sau
“ sub ABC(ABC as long)”
Những sub vậy không chạy trực tiếp đc?
Vậy sub như vậy là sao ạ? Cám ơn
 
Upvote 0
Dear All.!
Cho em hỏi : em thấy một số người viết sub dạng sau
“ sub ABC(ABC as long)”
Những sub vậy không chạy trực tiếp đc?
Vậy sub như vậy là sao ạ? Cám ơn
Cái đấy thêm điều kiện đó ABC.Sub đấy là gọi ra dùng thôi.Nó vẫn chạy được với Code của bạn không liên quan đến ABC.
 
Upvote 0
Capture.PNGxin chào cả nhà, cho mình hỏi làm cách nào để tạo 2 group option như thế này vậy ạ ?
 
Upvote 0
Web KT

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

Back
Top Bottom