【发布时间】:2016-08-19 23:05:46
【问题描述】:
我有一个 Excel 表 [Microsoft Office 2010],用户可以在其中选择某个商品和类别,然后将链接到该商品和类别的供应商列表打印在表上。我现在想打印此供应商列表旁边的超链接,这些供应商使用供应商作为搜索词执行谷歌搜索。这是我现在得到的代码:它检查第 6 列中的单元格是否为空,如果不是,则表示在单元格中打印了供应商名称。然后,我希望在其旁边的列中打印一个超链接,该链接使用供应商名称作为搜索词链接到 google 搜索。
编辑:下面的代码有效。问题出在 if 语句中 - isEmpty 不适用于字符串值,但 vbNullString 解决了问题。
上一期L 打印的链接指向一般的谷歌主页,没有搜索词。我相信链接导致一般谷歌页面的原因是因为实际的单元格值(用作搜索词)没有被正确读取。代码行 "If Not IsEmpty(cellSupplierListed) Then" 始终运行,即使单元格中没有供应商名称。我不知道为什么。 另外:假设列出了 5 个供应商,并且代码读取超过 300 行(在上面的代码中硬编码),那么仍然打印出 300 个链接,而应该只打印出 5 个。 (因为 300 行中只有 5 行有值)。这 5 个供应商由以前的代码在同一个 sub 中打印出来,并且确实显示在 excel 表上。似乎下面的代码没有将空白单元格读取为空白单元格或将非空白单元格读取为非空白单元格。
Dim cellSupplierListed As String
Dim csl As Integer
Dim h As Integer
h = 0
For csl = 1 To 300 'needs to be updated if more than 300 suppliers are listed
cellSupplierListed = Cells(9 + csl, 4).Value
If cellSupplierListed = vbNullString Then
Exit For
Else
h = h + 1
Range("G" & (9 + h)).Hyperlinks.Add Range("G" & (9 + h)), "http://www.google.com/search?q=" & cellSupplierListed, , , "Link"
End If
Next csl
【问题讨论】: