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:
Code của bạn đây, hãy xem trong file đính kèm!

Tôi bị kẹt không biét làm sao. nhờ các sư huynh chỉ giáo. làm xong tôi post lên cho anh em tham khảo. Chân thành cảm tạ!!

Chú ý chỉ có thể định dạng dữ liệu kiểu ngày về dạng 'm/d/yyyy'

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Columns("A:A")) Is Nothing Then
   Dim Sh As Worksheet, Rng As Range, sRng As Range, cRng As Range
   Dim MyAdd As String
   
   Set Sh = Sheets("Data")
   Set Rng = Sh.Range(Sh.[c1], Sh.[c65500].End(xlUp))
   Rng.NumberFormat = "m/d/yyyy"
   Set sRng = Rng.Find(Format(Target.Value, "m/d/yyyy"), , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
      MyAdd = sRng.Address
      Do
         If cRng Is Nothing Then
            Set cRng = sRng.Offset(, -1)
         Else
            Set cRng = Union(cRng, sRng.Offset(, -1))
         End If
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
   End If
   If Not cRng Is Nothing Then
      cRng.Copy
      Target.Offset(, 2).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
         False, Transpose:=True
      Application.CutCopyMode = False
   End If
 End If
End Sub
 

File đính kèm

  • GPE.rar
    13.6 KB · Đọc: 23
Upvote 0
Re Bạn HYEN17 cùng các Sư Huynh trong diễn đàn

Bạn xem lại File đính kèm của mình. Trong đó mình có sửa đổi nội dung thắc mắc .

còn đoạn code của bạn giúp mình, chép về loay hoay mãi mà không biết làm sao để nó chạy như mình mong muốn.
xem ra bạn viết được như vậy là nội công có hạng rồi. giúp mình với.

trước đây mình đã làm được một file Excel để nghiên cứu. với số liệu 1 năm 2008. kết quả dự đoán lâu lâu (lâu lâu thôi nhé) nhịn ăn 5 tô hủ tíu đánh đề cũng kiếm được 4-5 "chai".

bổng máy mình bị rớt ổ đĩa cứng mất hết dữ liệu phải làm lại từ đầu.
download được kết quả. nhưng nó có format dàn trang không như mong muốn phải chỉnh sửa lại để dễ bề lập công thức.
Mong bạn ra tay cứu giá
Thành thật cảm ơn
 

File đính kèm

  • DownloadKQXS.rar
    56.8 KB · Đọc: 55
Lần chỉnh sửa cuối:
Upvote 0
còn đoạn code của bạn giúp mình, chép về loay hoay mãi mà không biết làm sao để nó chạy như mình mong muốn. Giúp mình với.
Thành thật cảm ơn
Hãy thử nghiệm trực tiếp trên file của mình;
Còn file của bạn, không biết định dạng lại cột ngày tháng luôn, nên không dám xài, mong bạn thông cảm

Thân ái & đoàn kết.
 
Upvote 0
Bạn xem lại File đính kèm của mình. Trong đó mình có sửa đổi nội dung thắc mắc .

còn đoạn code của bạn giúp mình, chép về loay hoay mãi mà không biết làm sao để nó chạy như mình mong muốn.
xem ra bạn viết được như vậy là nội công có hạng rồi. giúp mình với.

trước đây mình đã làm được một file Excel để nghiên cứu. với số liệu 1 năm 2008. kết quả dự đoán lâu lâu (lâu lâu thôi nhé) nhịn ăn 5 tô hủ tíu đánh đề cũng kiếm được 4-5 "chai".

bổng máy mình bị rớt ổ đĩa cứng mất hết dữ liệu phải làm lại từ đầu.
download được kết quả. nhưng nó có format dàn trang không như mong muốn phải chỉnh sửa lại để dễ bề lập công thức.
Mong bạn ra tay cứu giá
Thành thật cảm ơn
- Bên Data không thấy số liệu do đài nào mà bên Sheet1 lại có thông tin đài (BD), vậy cột này copy từ đâu vào
 
Upvote 0
chân thành cảm ơn các bạn đã đọc thắc mắc của anbamilu2005

Chân thành cảm tạ các bạn đã quan tâm giúp đỡ . trong lúc vật lộn với code mình quay trở về các file cũ tìm được từ đống phục hồi ổ đĩa bới tung lên và tìm thấy kho số liệu.
ai chà chà khoooooo....ẻ
nhưng dù sao cũng phải khâm phục các sư huynh đệ.
những dòng code "khô queo" vậy mà các sư huynh đệ luyện được quá là hay.
Ít hôm nữa tôi chỉnh chót cái "Dự đoán KQXS" xong sẽ "xe" lên diễn đàn để các sư huynh đệ coi chơi và góp ý thêm.
chúc sức khỏe các sư huynh đệ.
chúc gặt hái được nhiều thành công
 
Upvote 0
Em mới nhập môn không biết xin hỏi các anh là code này thì mình tra ở đâu vậy? Chứ cứ mỗi lần lại hỏi các anh thì bất tiện quá!!!
 
Upvote 0
Em mới nhập môn không biết xin hỏi các anh là code này thì mình tra ở đâu vậy? Chứ cứ mỗi lần lại hỏi các anh thì bất tiện quá!!!
Thì bạn mua sách mà học (sách do GPE phát hành)
Mặc khác khi bạn hỏi cũng là học rồi còn gì (ở đây chẳng ai thấy phiền cả, trừ phi hỏi vớ vẩn)
 
Upvote 0
Tôi muốn dùng VBA để thực hiện lệnh Cutom format "#" Khẩu" . Câu lệnh do Macro ghi lại là: Selection.NumberFormat = "#"" Kh?u""" không thể hiện được chữ ẩ. Nhờ các bạn viết giúp câu lệnh này. Thanks !
 
Upvote 0
Giải thích hộ em đoạn code

Em có đoạn code này nhưng không hiểu rõ được các bac giải thích hộ em với
Mã:
Public Function WriteHeaderFileDBF(FileInput As String)
        Dim i As Long
        Put #FileNumber, , Header.DBT '3
        Put #FileNumber, , Header.YY '109
        Put #FileNumber, , Header.MM '9
        Put #FileNumber, , Header.DD '6
        Put #FileNumber, , Header.NumRecords 'So luong ban ghi
        Put #FileNumber, , Header.HeaderLen '257
        Put #FileNumber, , Header.RecordLen '604
        Put #FileNumber, , Header.NotUse 'Null
        For i = 1 To NumFields '7
            Put #FileNumber, , Fields(i).FieldName
            Put #FileNumber, , Fields(i).FieldType
            Put #FileNumber, , Fields(i).FieldMemoAdd
            Put #FileNumber, , Fields(i).FieldWidth
            Put #FileNumber, , Fields(i).FieldDecimal
            Put #FileNumber, , Fields(i).NotUse
        Next i
End Function
PHP:
Public Function WriteRecordsFileDBF(FileInput As String)
    Put #FileNumber, Header.HeaderLen, Header.EndHeader
    Records.DeleteFlag = 32
        With Parcels(i)
            Records.FieldParcelId = .Parcel
            Records.FieldUserName = .UserName
            Records.FieldCodeLandType = .LandType
            Records.FieldArea = .Area
            Records.FieldArea2 = .Area2
            Records.FieldAddress = .Address
            Records.FieldMDSD2003 = .MDSD2003
        End With
        Put #FileNumber, , Records.DeleteFlag
        Put #FileNumber, , Records.FieldParcelId
        Put #FileNumber, , Records.FieldArea
        Put #FileNumber, , Records.FieldArea2
        Put #FileNumber, , Records.FieldUserName
        Put #FileNumber, , Records.FieldCodeLandType
        Put #FileNumber, , Records.FieldAddress
        Put #FileNumber, , Records.FieldMDSD2003
End Function
Mã:
Public Function ReadHeaderFileDBF(FileInput As String)
    Dim i As Long
    FileNumber = FreeFile
    Open FileInput For Binary As #FileNumber
        Get #FileNumber, , Header.DBT
        Get #FileNumber, , Header.YY
        Get #FileNumber, , Header.MM
        Get #FileNumber, , Header.DD
        Get #FileNumber, , Header.NumRecords
        Get #FileNumber, , Header.HeaderLen
        Get #FileNumber, , Header.RecordLen
        Get #FileNumber, , Header.NotUse
        NumFields = (Header.HeaderLen - 32 - 1) / 32
        ReDim Fields(NumFields) As FieldStructure
        For i = 1 To NumFields
            Get #FileNumber, , Fields(i).FieldName
            Get #FileNumber, , Fields(i).FieldType
            Get #FileNumber, , Fields(i).FieldMemoAdd
            Get #FileNumber, , Fields(i).FieldWidth
            Get #FileNumber, , Fields(i).FieldDecimal
            Get #FileNumber, , Fields(i).NotUse
        Next i
    Close #FileNumber
End Function
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Trong khi chờ phương cách xịn hơn, tạm xài cách chuối, như sau

Tôi muốn dùng VBA để thực hiện lệnh Cutom format "#" Khẩu" . Câu lệnh do Macro ghi lại là: Selection.NumberFormat = "#"" Kh?u""" không thể hiện được chữ ẩ. Nhờ các bạn viết giúp câu lệnh này. Thanks !

Bạn lấy 1 ô trống không bao giờ xài tới, ví dụ [iV1]
Đánh 1 con số vô đó & thực hiện định dạng trong excel như bạn muốn.

Sau đó dùng macro chuối này, trong khi chờ phương cách khác hay hơn!

PHP:
Sub Macro2()
 Dim Format_ As String
 Format_ = [IV1].NumberFormat       ' #" kh?u"'
    ActiveCell.NumberFormat = Format_
End Sub
:-=
 
Upvote 0
Tôi muốn dùng VBA để thực hiện lệnh Cutom format "#" Khẩu" . Câu lệnh do Macro ghi lại là: Selection.NumberFormat = "#"" Kh?u""" không thể hiện được chữ ẩ. Nhờ các bạn viết giúp câu lệnh này. Thanks !
Anh phải chơi tí xảo thuật:
PHP:
ActiveCell.NumberFormat = "# "" kh" & ChrW(7849) & "u"""
 
Upvote 0
Trung binh dong (Moving Averange)

Chào các Bác
Bác nào có code hàm Moving Average như trong phần Data Analysis không?
Với Input Range : $K$1:$K$10000
Interval : 100
Output Range : $L$1:$L$10000
Mong các bác giúp. Xin cảm ơn

Hỏi các bác giúp đỡ , nhưng chưa có câu trả lời .Tôi đành mày mò vậy. Tạm đưa lên đây đoạn mã này nếu có trùng của ai xin thứ lỗi .
Ngoài ra nếu ai có đoạn code nào hay hơn xin chỉ giúp . Xin cám ơn

Sub TrungBinhDong()
Dim i As Integer
Dim j As Integer
j = 1
For i = 1 To 10000
Cells(j, 2).Select ' Kết quả ở cột B
If j < 100 Then
ActiveCell.FormulaR1C1 = "#N/A" ' lay tu 1 den 99
ActiveCell.Offset(1, 0).Range("A1").Select ' Dữ liệu ở cột A
ElseIf 100 <= j Then
ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[-99]C[-1])"
ActiveCell.Offset(1, 0).Range("A1").Select
End If
j = j + 1
Next i
End Sub
 
Upvote 0
Copy cong thuc thanh text

Tôi không biết về Marco nên nhờ các bác sửa lại code sau:

Sub copy_special()

With Selection
Selection.copy = specialcell
End With
End Sub

Chắc là sai ở chỗ bôi đỏ nhưng tôi không biết sửa thành câu lệnh như thế nào cho phù hợp. Code này để copy vùng lựa chọn thành dữ liệu (vùng lựa chọn đang là công thức).

Thanks các bác!
 
Upvote 0
Tôi không biết về Marco nên nhờ các bác sửa lại code sau:

Sub copy_special()

With Selection
Selection.copy = specialcell
End With
End Sub

Chắc là sai ở chỗ bôi đỏ nhưng tôi không biết sửa thành câu lệnh như thế nào cho phù hợp. Code này để copy vùng lựa chọn thành dữ liệu (vùng lựa chọn đang là công thức).

Thanks các bác!
Chỉ vầy là được:
PHP:
Sub copy_special()
   With Selection
      .Value = .Value
   End With
End Sub
 
Upvote 0
Hic, đơn giản wá nhỉ. cám ơn bác Ndu nhé!
 
Upvote 0
Thanks bác lần nữa nhé. Vì mình thực sự không biết về marco nên chỉ chắp ghép từ nhiều đoạn code miễn phí trên mạng và gắn vào của mình nên nếu nó có vấn đề gì làm cho code không chạy được thì chịu luôn.
 
Upvote 0
Các bạn cho mình hỏi sự khác nhau (tác dụng khác nhau) giữa lệnh Copy và lệnh Copy Destination.
ví dụ trong 2 câu lệnh sau:

Sheets("Sheet1").Range("A1:K2000").Copy Sheets("Sheet2").[A1]

Sheets("Sheet1").Range("A1:K2000").Copy Destination:=Sheets("Sheet2").[A1]

Thanks!
 
Upvote 0
Các bạn cho mình hỏi sự khác nhau (tác dụng khác nhau) giữa lệnh Copy và lệnh Copy Destination.
ví dụ trong 2 câu lệnh sau:

Sheets("Sheet1").Range("A1:K2000").Copy Sheets("Sheet2").[A1]

Sheets("Sheet1").Range("A1:K2000").Copy Destination:=Sheets("Sheet2").[A1]

Thanks!
Hai đoạn này là một anh à, chẳng qua đoạn 2 nó tường minh hơn, còn đoạn 1 người ta ghi tắt (bỏ chử Destination:=)
 
Upvote 0
Hỏi về code của subtotal

Tôi tìm thấy được 1 đoạn code như sau:

'SUBTOTAL
Range("A5", x).Select
Selection.SUBTOTAL GroupBy:=14, Function:=xlSum, TotalList:=Array(12), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True


Dim x, y, z, m, n As Integer
y = Range("IQ1").Value
z = Range("IR1").Value
m = Range("IS1").Value

Sheets(y).Select
Sheets(y).Copy Before:=Sheets(2)
Cells.Select
Selection.RemoveSubtotal
Vấn đề của tôi như sau :
1. Range("A5", x), và Sheets(y).Select: với "x" và "y" là do mình phải tự tác động vào code hay là do macro tự thu được. Nếu tự thu được thì mình làm như thế nào để được như vậy. Còn do mình tác động thì sao mà mình biết để tác động?
2.
Dim x, y, z, m, n As Integer
y = Range("IQ1").Value
z = Range("IR1").Value
m = Range("IS1").Value
Các biến x,y, z mà mình khai báo là để giúp macro chạy nhanh hơn phải không?
Tôi chỉ mới biết về macro, tôi có đọc một số bài viết về macro của GPE và chỉ biết được 1 vài macro đơn giản. Những code phức tạp thì chưa hiểu được nên mong các bạn chỉ giúp. Cám ơn rất nhiều.
 
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