Hỏi cách lấy tên các biến đã khai báo vào ô Cell

Liên hệ QC

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
929
Được thích
240
Giới tính
Nam
Xin chào các bạn GPE!
Tôi có khai báo các biến như thế này:
Mã:
Public i As Long
Public rng As Range
Public Tam
Public Dic As Object
Public k As String
Làm thế nào để lấy tên các biến đã khai báo vào ô Cell như thế này?
Untitled08.png
Mong các bạn chỉ giúp
Xin cảm ơn!
 

File đính kèm

  • Hoi cach lay ten cac bien da khai bao vao o Cell.xlsm
    14.5 KB · Đọc: 3
Test thử cái này
Bạn dùng 1 trong 2 dòng này:
Mã:
Nếu chỉ lấy "Public"
If line Like "Public *" Then
Nếu muốn lấy hết phần khai báo biến (trong sub):
If line Like "Public *" Or line Like "Dim *" Or line Like "Conts *" Then

Code chính:
Mã:
Option Explicit
Public i As Long
Public rng As Range
Public Tam
Public Dic As Object
Public k As String
Sub Hoi_cach_Module1_da_khai_bao_vao_o_Cell()
Dim code As String, lines, line
code = ThisWorkbook.VBProject.VBComponents("Lay_ten_bien").CodeModule.lines(1, _
        ThisWorkbook.VBProject.VBComponents("Lay_ten_bien").CodeModule.CountOfLines)
lines = Split(code, vbCrLf)
For Each line In lines
    'If line Like "Public *" Then
    If line Like "Public *" Or line Like "Dim *" Or line Like "Conts *" Then
        Range("B1000").End(xlUp).Offset(1, 0).Value = line
    End If
Next
End Sub
 
Upvote 0
code = ThisWorkbook.VBProject.VBComponents("Lay_ten_bien").CodeModule.lines(1, _
ThisWorkbook.VBProject.VBComponents("Lay_ten_bien").CodeModule.CountOfLines)
Cảm ơn bạn.
Cái từ "Lay_ten_bien" tôi không thấy bạn khai báo. Tôi có khai báo nó và tôi chạy thử thì nó báo là
Untitled08.png
Không hiểu vì sao, mong bạn chỉ giúp với
 
Upvote 0
PHP:
Sub InThongTinBienTrongDuAns()
    Dim vbProj As Object
    Dim vbComp As Object
    Dim vbModule As Object
    Dim lineNum As Long
    Dim codeLine As String

    Set vbProj = Application.VBE.ActiveVBProject

    For Each vbComp In vbProj.VBComponents
        If vbComp.CodeModule.CountOfLines > 0 Then
            Set vbModule = vbComp.CodeModule
            
            For lineNum = 1 To vbModule.CountOfLines
                codeLine = vbModule.lines(lineNum, 1)
                If Left(codeLine, Len("Public")) = "Public" Then
                    Debug.Print codeLine
                End If
            Next lineNum
        End If
    Next vbComp
End Sub
Bạn tự chế biến để in xuống sheets.
 
Upvote 0

File đính kèm

  • Hoi cach lay ten cac bien da khai bao vao o Cell.xlsm
    15 KB · Đọc: 2
Upvote 0
PHP:
Sub InThongTinBienTrongDuAns()
    Dim vbProj As Object
    Dim vbComp As Object
    Dim vbModule As Object
    Dim lineNum As Long
    Dim codeLine As String

    Set vbProj = Application.VBE.ActiveVBProject

    For Each vbComp In vbProj.VBComponents
        If vbComp.CodeModule.CountOfLines > 0 Then
            Set vbModule = vbComp.CodeModule
           
            For lineNum = 1 To vbModule.CountOfLines
                codeLine = vbModule.lines(lineNum, 1)
                If Left(codeLine, Len("Public")) = "Public" Then
                    Debug.Print codeLine
                End If
            Next lineNum
        End If
    Next vbComp
End Sub
Bạn tự chế biến để in xuống sheets.
1701241425683.png



tôi chạy thì được như này, chủ thớt hông rõ có cần liệt kê biến local hông nhỉ?
 
Upvote 0
Khi truy cập mã VBA của dự án, điều kiện tiên quyết là cần đánh dấu tích xác nhận trong cài đặt Trust Center.
 
Upvote 0
Web KT

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

Back
Top Bottom