Mọi người giúp mình câu lệnh để hiểu là ô đó có Hyperlink

Liên hệ QC

hunglam123

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
31/3/20
Bài viết
180
Được thích
43
Chào mọi người. mình không biết câu lệnh để xác định là Chuổi đó là có Hyperlink hay là Text bình thường
File bên dưới mình cần lọc ra những ô không phải Hyperlink
Mình đang dùng đoạn code này mà không biết câu lệnh để phân biệt đâu là Hyperlink . Nhờ mọi người giúp đỡ. em xin chân thành cảm ơn ạ

Mã:
Sub loc()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Range("a3:a1000").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1) ' 3 COT
For I = 1 To R
    If sArr(I, 1) <> Hyperlink  ' chổ này mình không biết câu lệnh gì để nó hiểu khác Hyperlink  
        K = K + 1
        For Col = 1 To 1 ' 3 COT
            dArr(K, Col) = sArr(I, Col)
        Next Col
    End If
Next I
' OUTPUT
On Error Resume Next
Range("C3:C2000").ClearContents
Range("C3").Resize(K, 1) = dArr ' 3 COT
End Sub


1587219085863.png
 

File đính kèm

  • loc Loai bo sieu len ket.xlsb
    13.3 KB · Đọc: 6
Chào mọi người. mình không biết câu lệnh để xác định là Chuổi đó là có Hyperlink hay là Text bình thường
File bên dưới mình cần lọc ra những ô không phải Hyperlink
Mình đang dùng đoạn code này mà không biết câu lệnh để phân biệt đâu là Hyperlink . Nhờ mọi người giúp đỡ. em xin chân thành cảm ơn ạ

Mã:
Sub loc()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Range("a3:a1000").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1) ' 3 COT
For I = 1 To R
    If sArr(I, 1) <> Hyperlink  ' chổ này mình không biết câu lệnh gì để nó hiểu khác Hyperlink 
        K = K + 1
        For Col = 1 To 1 ' 3 COT
            dArr(K, Col) = sArr(I, Col)
        Next Col
    End If
Next I
' OUTPUT
On Error Resume Next
Range("C3:C2000").ClearContents
Range("C3").Resize(K, 1) = dArr ' 3 COT
End Sub


View attachment 235965
kiểm tra hyper link trong 1 cells:
Mã:
If Range("A1").Hyperlinks.Count > 0 Then MsgBox "hyperlink present!"
 
Upvote 0
Chào mọi người. mình không biết câu lệnh để xác định là Chuổi đó là có Hyperlink hay là Text bình thường
File bên dưới mình cần lọc ra những ô không phải Hyperlink
Mình đang dùng đoạn code này mà không biết câu lệnh để phân biệt đâu là Hyperlink . Nhờ mọi người giúp đỡ. em xin chân thành cảm ơn ạ

Mã:
Sub loc()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Range("a3:a1000").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1) ' 3 COT
For I = 1 To R
    If sArr(I, 1) <> Hyperlink  ' chổ này mình không biết câu lệnh gì để nó hiểu khác Hyperlink 
        K = K + 1
        For Col = 1 To 1 ' 3 COT
            dArr(K, Col) = sArr(I, Col)
        Next Col
    End If
Next I
' OUTPUT
On Error Resume Next
Range("C3:C2000").ClearContents
Range("C3").Resize(K, 1) = dArr ' 3 COT
End Sub


View attachment 235965
covid ko biết làm gì , nghịch ngợm code của bạn; check thử xem ok không
Mã:
Public Function checkHyperlinks(rng As Range) As Boolean
    If rng.Hyperlinks.Count > 0 Then checkHyperlinks = True
End Function
Sub loc()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Range("a3:a1000").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1) ' 3 COT
For I = 1 To R
    If Not checkHyperlinks(Range("A" & 2 + I)) Then
            K = K + 1
        For Col = 1 To 1 ' 3 COT
            dArr(K, Col) = sArr(I, Col)
        Next Col
    End If
Next I
' OUTPUT
On Error Resume Next
Range("C3:C2000").ClearContents
Range("C3").Resize(K, 1) = dArr ' 3 COT
End Sub
 
Upvote 0
Chào mọi người. mình không biết câu lệnh để xác định là Chuổi đó là có Hyperlink hay là Text bình thường
File bên dưới mình cần lọc ra những ô không phải Hyperlink
Mình đang dùng đoạn code này mà không biết câu lệnh để phân biệt đâu là Hyperlink . Nhờ mọi người giúp đỡ. em xin chân thành cảm ơn ạ

Sub loc()
........................
End Sub
Cần gì kiểm tra, nhìn bằng mắt thường là thấy sự khác biệt liền Hyperlink thì có chữ màu xanh và gach đích.
 
Upvote 0
Upvote 0
kiểm tra hyper link trong 1 cells:
Do tôi đọc tiêu đề bài viết là "giúp mình câu lệnh để hiểu là ô đó có Hyperlink", mà không đọc nội dung nên có sự hiểu nhằm.
Vậy, bạn thử dùng code cùi mía nay đi, nó sẽ Copy những Cell không phải Hyperlink sang sheet 2:
Mã:
Sub Copy()
    Application.ScreenUpdating = False
    Sheet2.Range("A4").CurrentRegion.ClearContents
    With Sheet1
        .Range("$A$2").AutoFilter Field:=1, Operator:=xlFilterAutomaticFontColor
        .Range("A2").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Sheet2.Range("A4")
        .Range("$A$2").AutoFilter
    End With
    Application.ScreenUpdating = True
End Sub
 
Upvote 0
Do tôi đọc tiêu đề bài viết là "giúp mình câu lệnh để hiểu là ô đó có Hyperlink", mà không đọc nội dung nên có sự hiểu nhằm.
Vậy, bạn thử dùng code cùi mía nay đi, nó sẽ Copy những Cell không phải Hyperlink sang sheet 2:
Mã:
        .Range("$A$2").AutoFilter Field:=1, Operator:=xlFilterAutomaticFontColor
- Nếu người dùng định dạng ô chứa hyperlink với màu Auto thì sao?
- Nếu người dùng định dạng ô không chứa hyperlink có màu đỏ thì sao?
Code "cùi mía" này lọc dựa trên hiện tượng chứ không bắt đúng bản chất
 
Upvote 0
Do tôi đọc tiêu đề bài viết là "giúp mình câu lệnh để hiểu là ô đó có Hyperlink", mà không đọc nội dung nên có sự hiểu nhằm.
Vậy, bạn thử dùng code cùi mía nay đi, nó sẽ Copy những Cell không phải Hyperlink sang sheet 2:
Mã:
Sub Copy()
    Application.ScreenUpdating = False
    Sheet2.Range("A4").CurrentRegion.ClearContents
    With Sheet1
        .Range("$A$2").AutoFilter Field:=1, Operator:=xlFilterAutomaticFontColor
        .Range("A2").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Sheet2.Range("A4")
        .Range("$A$2").AutoFilter
    End With
    Application.ScreenUpdating = True
End Sub
Đã thử và code chạy sai. Ví dụ test đó tô màu thì nó hiểu là Hyperlink luôn
Bài đã được tự động gộp:

covid ko biết làm gì , nghịch ngợm code của bạn; check thử xem ok không
Mã:
Public Function checkHyperlinks(rng As Range) As Boolean
    If rng.Hyperlinks.Count > 0 Then checkHyperlinks = True
End Function
Sub loc()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Range("a3:a1000").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1) ' 3 COT
For I = 1 To R
    If Not checkHyperlinks(Range("A" & 2 + I)) Then
            K = K + 1
        For Col = 1 To 1 ' 3 COT
            dArr(K, Col) = sArr(I, Col)
        Next Col
    End If
Next I
' OUTPUT
On Error Resume Next
Range("C3:C2000").ClearContents
Range("C3").Resize(K, 1) = dArr ' 3 COT
End Sub
cảm ơn anh. Code anh chạy quá chuẩn. Nhưng cho hỏi em tự viết theo kiểu của em sao nó lại không chạy được

Sub loc()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Range("a3:a1000").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1) ' 3 COT
For I = 1 To R
If Not sArr(I, 1).Hyperlinks.Count > 0 Then ' Nó báo lỗi dòng này
K = K + 1
For Col = 1 To 1 ' 3 COT
dArr(K, Col) = sArr(I, Col)
Next Col
End If
Next I
' OUTPUT
On Error Resume Next
Range("C3:C2000").ClearContents
Range("C3").Resize(K, 1) = dArr ' 3 COT
End Sub
 
Upvote 0
Đã thử và code chạy sai. Ví dụ test đó tô màu thì nó hiểu là Hyperlink luôn
Bài đã được tự động gộp:


cảm ơn anh. Code anh chạy quá chuẩn. Nhưng cho hỏi em tự viết theo kiểu của em sao nó lại không chạy được

Sub loc()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Range("a3:a1000").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1) ' 3 COT
For I = 1 To R
If Not sArr(I, 1).Hyperlinks.Count > 0 Then ' Nó báo lỗi dòng này
K = K + 1
For Col = 1 To 1 ' 3 COT
dArr(K, Col) = sArr(I, Col)
Next Col
End If
Next I
' OUTPUT
On Error Resume Next
Range("C3:C2000").ClearContents
Range("C3").Resize(K, 1) = dArr ' 3 COT
End Sub
sArr là mảng thì làm gì có thuộc tính Hyperlinks gắn phía sau chứ
 
Upvote 0
Mảng theo đúng định nghĩa là một dãy phần tử cùng loại xếp liền nhau.
Mảng đối tượng thì phần tử của nó vẫn có thuộc tính như thường. Mảng mà các phần tử của nó là range object thì dĩ nhiên các phần tử đều có thuộc tính Hyperlinks.
Dim a(1 to 1) As Object
Set a(1) = Range("A1")
x = a(1).Hyperlinks.Count

Chỉ là ở bài này, khi copy:
sArr = Range("a3:a1000").Value ' DU LIEU DAU VAO
thì lệnh gán vào mảng chỉ copy 'Value' của range vào mảng thôi. Các phần tử của sArr là Variants, chứa các kiểu đơn giản, không còn là Range Object nữa.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom