Excel VBA:创build新工作表的超链接

想知道这是否可能,但是:

所以我得到一个macrosbutton,从用户窗体插入到工作表中的值,这是一个可视化的示例,它大致如下所示:

<table style="width:100%"> <tr> <td>OrderID:</td> <td>Product</td> <td>Q</td> <td>Invoice</td> </tr> <tr> <td>1</td> <td>Potato</td> <td>1337</td> <td><a href="url">Open Invoice</a></td> </tr> </table> 

我用这个代码创build的“Open Invoice”链接:

  Sheets("Sales").Hyperlinks.Add Sheets("Sales").Cells(emptyRow, 9), "", Sheets("Sales").Name, "", "Open Invoice" 

我想这样做,每当我点击“打开发票”,它会创build一个新的工作表(最好是一个新的Excel窗口),然后数据传输到一个模板(转移和模板,我想我会pipe理自己)

谢谢!

这样做来设置你的超链接:

 Dim hlRange as Range Set hlRange = Sheets("Sales").Cells(emptyRow, 9) With hlRange.Hyperlinks .Delete .Add Anchor:=hlRange, _ Address:="", _ SubAddress:=hlRange.Address, _ TextToDisplay:="Open Invoice" End With 

这创build了一个链接回自己的超链接,所以它是一个有效的参考,但它不会去其他任何地方

然后,使用Worksheet_FollowHyperlink事件过程从您的模板中创build一个新的工作簿,然后可以根据需要插入数据:

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim wb as Workbook Dim ws as Worksheet ' If there are other hyperlinks in this sheet which should NOT trigger the new file, then you will need to add an Intersect test and exit sub early. 'Add a new workbook Set wb = Workbooks.Open("path to template file") '## Modify as needed Set ws = wb.Worksheets(1) '## Modify as needed 'Add the data to the new sheet in new workbook ' -- code here, or call another procedure to do the operation -- End Sub