Excel 将第1行数据(标题)列在另一张图纸的列中,并创建超链接
我没有找到宏来实现我的目标,现在我已经用尽了我的搜索能力 我有两张工作表 1-数据表 2-所有标题 我希望宏从工作表“数据表”复制第1行数据,将其转换并粘贴到工作表“AllHeaders”中,并创建指向该标题的超链接。 比你强 这里是录制的宏,但我只录制了两列标题超链接,因为有数千个标题是手动完成的,这需要一天的时间Excel 将第1行数据(标题)列在另一张图纸的列中,并创建超链接,excel,vba,Excel,Vba,我没有找到宏来实现我的目标,现在我已经用尽了我的搜索能力 我有两张工作表 1-数据表 2-所有标题 我希望宏从工作表“数据表”复制第1行数据,将其转换并粘贴到工作表“AllHeaders”中,并创建指向该标题的超链接。 比你强 这里是录制的宏,但我只录制了两列标题超链接,因为有数千个标题是手动完成的,这需要一天的时间 Sub Macro1() ' ' Macro1 Macro ' ' Range("A1").Select Range(Selection, Selection.End
Sub Macro1()
'
' Macro1 Macro
'
'
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("AllHeaders").Select
Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("B5").Select
Application.CutCopyMode = False
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"DataSheet!A1", TextToDisplay:="responseid"
Range("B6").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"DataSheet!B1", TextToDisplay:="respid"
End Sub
尝试在循环中执行此操作。我目前无法测试这一点,但它应该是您所需要的大部分:
Sub CreateHeaders()
Dim wsData as Worksheet
Dim wsHeaders as Worksheet
Dim headerRange as Range
Dim header as Range
Dim i as Long: i=0
Dim anchor as Range
DIm subAddr as String
Set wsData = Worksheets("DataSheet")
Set wsHeaders = Worksheets("AllHeaders")
Set headerRange = wsData.Range("A1", wsData.Range("A1").End(xlToRight))
Set anchor = wsHeaders.Range("B5") '## begin inserting the hyperlinks at B5
For each header in headerRange '## iterate over each cell in the header row
subAddr = "'" & wsData.Name & "'!" & header.Address
With wsHeaders
.Hyperlinks.Add Anchor:=anchor, Address:="", SubAddress:= _
subAddr, TextToDisplay:=header.Value
End With
i = i+1
Set anchor = anchor.Offset(i,0) '## increment the location of the next hyperlink, to the next row
Next
End Sub
你试过录制一个宏并以此为起点吗?我运行了宏,得到了这样的结果:1)没有在“AllHeaders”工作表中转置标题,虽然在一行的某些空白列后复制了标题,2)hyperlink没有链接到“Datasheet”工作表。它链接到了“AllHeaders”工作表。我做了一些修改。现在应该进行转置,以便所有标题都位于B列中,从
B5
开始。另外,我想我做了一个修改,使链接到数据表
工作表。Hyperlink运行良好,但在空行间隔后,所有标题都被转置,行数正在增加。第一个标题从B5开始,但第三个标题粘贴在一个空白行之后,它正在校正…将其更改为设置锚定=锚定。偏移量(1,0)
而不是设置锚定=锚定。偏移量(i,0)
。哇,现在它工作了,它工作起来像个魔咒!非常感谢。真的很感谢你……非常感谢你。