我的任务是创建一个代码,该代码将检查Excel电子表格中的内部超链接是否有效。此代码首先更改电子表格上的公式,并使它们成为实际的超链接(它们最初是将位置链接在一起的公式)。我现在遇到的问题是,如果列S具有文本,我想仅创建超链接。如果没有,我不希望显示“ E-COPY”文本。 S列中的所有文本都是变化的(没有一行具有相同的字符),这就是为什么我要空白的原因,是我告诉程序仅在有任何文本而不是任何特定内容的情况下才继续。我正在使用Excel 2016。
此外,我正在对71935执行此操作并计算行数;可以通过的数量有限制吗?如果是这样,我该怎么办?
谢谢!
Sub CreateHyperlinks()
Dim FN As Variant
Dim Path As Variant
Dim count As Variant
Sheets(1).Activate
count = WorksheetFunction.CountA(Sheets(1).Range("A:A"))
For i = 2 To count
If Range("AM" & i).Value = "Yes" And Columns("S") = Then
Range("E" & i).Value = ""
Path = Sheets(1).Range("R" & i).Value
FN = Sheets(1).Range("S" & i).Value
Sheets(1).Range("E" & i).Select
Selection.ClearFormats
Selection.Hyperlinks.Add Anchor:=Selection, Address:=Path & FN, TextToDisplay:="E-COPY"
Range("AM" & i).Value = " "
End If
Next i
End Sub
答案 0 :(得分:2)
如果您只需要检查ColS中的任何内容,则:
If Range("AM" & i).Value = "Yes" And Len(Range("S" & i).Value) > 0 Then
答案 1 :(得分:2)
几件事:
'make a reference to the sheet you're working with
Dim ws As Worksheet
Dim wb As Workbook
Set wb = Excel.Application.ThisWorkbook
Set ws = wb.Worksheets(1)
'gets the absolute last row with data in it // ignores empty cells
count = ws.UsedRange.Rows.Count
我个人不喜欢使用命名范围,所以我建议像这样设置范围引用
你写了什么
Path = Sheets(1).Range("R" & i).Value
我认为它应该是什么样子
Path = ws.Cells(i, 18).Value
如果要在使用变体时测试类型,请尝试以下操作:
'tests the type associated with the variant. an 8 = string
If VarType(ws.Cells(i, 19).Value) = 8 Then
'do your thing
'tests if the value is null
ElseIf VarType(ws.Cells(i, 19).Value) = 0 Then
'do your other thing
here's可变类型枚举列表以帮助您。
希望有帮助!