excel - 将超链接添加到一列
问题描述
我试图在第一列中创建超链接,条件是单元格中的值以“W”开头。
在我将脚本从 Sheet 对象移动到 ThisWorkbook 之前,它似乎有效。
从那时起,当我尝试从另一个工作表复制一些单元格并将它们粘贴到活动工作表时,我复制的所有内容都被粘贴为超链接,无论它是什么列或值。更重要的是,如果我尝试在第一个单元格链接的行中键入任何内容,则默认键入模式是超链接样式。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim KeyCells2 As Range
Set KeyCells2 = Range("A:A")
If Not Application.Intersect(KeyCells2, Range(Target.Address)) _
Is Nothing Then
On Error Resume Next
If Target.Count = 1 Then 'this one was meant to be a fix but it didn't change a thing
If Left(Target.Value, 1) = "W" Then
link = "http://<mylink>" & Target.Value
ActiveSheet.Hyperlinks.Add Target, link
End If
End If
End If
End Sub
解决方案
试试这个,我想它会做你需要的:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim KeyCells2 As Range
Dim targetcell As Range
Set KeyCells2 = Application.Intersect(Sh.Range("A:A"), Target, Sh.UsedRange)
If Not KeyCells2 Is Nothing Then
For Each targetcell In KeyCells2
If Left(targetcell.Value, 1) = "W" Then
link = "http://my.link." & targetcell.Value
Sh.Hyperlinks.Add Anchor:=targetcell, Address:=link
End If
Next
End If
End Sub
推荐阅读
- mysql - 如何切片以“/”分隔的字符串?
- java - GRID_BROWSER_TIMEOUT 和 GRID_TIMEOUT 有什么区别
- python - Pandas 中命名的滚动聚合自定义函数
- reactjs - 使用 react js 创建一个可以读取 .csv 文件并在 chartjs 中显示的网站
- javascript - 笑话路径映射错误:找不到模块 xyz 映射为:abc
- sql - Oracle 19 数据库是否支持 UUID 列?
- r - 每次在闪亮的应用程序中按下 actionButton 时,都会在存储的 csv 文件中添加一个新列
- windows - 优雅地等待/关闭的脚本/windows 命令
- python - 为什么scrapy不调用该函数?
- javascript - 如何在 javascript 中播放铃声音频(无需用户交互)?