为一系列单元格设置超链接地址

时间:2018-02-28 13:04:23

标签: excel vba excel-vba

我的工作簿中有两张纸。名称如下:

1) Temp
2) Validation Report

工作表“Temp”在“A”列中包含10000行。

工作表“验证报告”包含3列“A”,“B”和“C”,用于错误报告。为Sheet“Temp”中存在的空单元格值填充错误行。列'A'包含'工作表名称'Temp'',列'B'包含工作表“Temp”的空单元格值,带有指向相应单元格的超链接,列'C'包含错误消息。

我正在使用以下宏来检测工作表“Temp”中的空单元格,并在工作表“验证报告”中显示这些单元格的错误消息,并提供指向“Temp”工作表的相应单元格的超链接。

Dim validationErrors(1 To 20000, 1 To 3) As Variant
Dim hyperlinkSubaddress(1 To 20000) As Variant
dat = Range("A1:A10000").Value

validationSheetStartRow = 0
c = 1

startTime = Timer

Do While (c < 10000)

    num = dat(c, 1)

    errorMsg = "Value is not present."
    If (IsEmpty(Sheets("Temp").Cells(c, 1))) Then
        validationSheetStartRow = validationSheetStartRow + 1
        validationErrors(validationSheetStartRow, 1) = "Temp"
        validationErrors(validationSheetStartRow, 2) = num
        validationErrors(validationSheetStartRow, 3) = errorMsg
        hyperlinkSubaddress(validationSheetStartRow) = "Temp!" & Sheets("Temp").Cells(c, 1).Address
    End If

    c = c + 1
Loop


Sheets(validationErrorSheet).Range("A1:C" & validationSheetStartRow) = validationErrors
Sheets(validationErrorSheet).Range("A1:A" & validationSheetStartRow).Hyperlink.SubAddress = hyperlinkSubaddress

endTime = Timer

MsgBox endTime - startTime

上面代码中的以下行用于设置超链接的子地址:

Sheets(validationErrorSheet).Range("A1:A" & validationSheetStartRow).Hyperlink.SubAddress = hyperlinkSubaddress

它出现以下错误:

  

运行时错误'438':

     

Object不支持此属性或方法

有没有办法可以快速将超链接设置为某个范围?

0 个答案:

没有答案