VBA填充整个表而不是定义的单元格

时间:2017-12-13 16:27:52

标签: excel excel-vba hyperlink vba

我遇到了一个我不理解的疯狂问题,我还没有找到解决方法。

首先,我有一个excel宏根据其他工作簿中的信息在工作簿上填充各种工作表。我想要包含一个指向网站的超链接,其中包含一个工作簿中指定单元格中的值,同时仅显示该值。我尝试将公式插入如下

=HYPERLINK("https://example.com/value","value")

此超链接仅适用于某个单元格,因此它只应出现在条件为真的位置。 现在对于疯狂的部分:如果我填充单元格我想要插入带有普通字符串或int的超链接,它可以正常工作,VBA只填充我指定的单元格。当我插入一个超级链接时,它会填满我工作表上的整个列,尽管其他所有内容都以相同的方式保存。 请找到以下代码的片段:

RequestID = Workbook1.ActiveSheet.Cells(i, 1).Text 'Request number

Workbook2.Sheets("Sheet1").Cells(y, 4) = RequestID    

这仅使用正确的请求编号填充单元格(y,4)

Workbook2.Sheets("Sheet1").Cells(y, 4) = "RequestID"

这只使用字符串“RequestID”按预期填充单元格(y,4)

  Workbook2.Sheets("Sheet1").Cells(y, 4) = "=HYPERLINK(" & Chr(34) &"https://example.com/" & RequestID & Chr(34) & "," & Chr(34) & RequestID & Chr(34) & ")"

这会填满我的整个表格,除了带有正确工作超链接的标题。

我真的不明白为什么,我想不出任何可能的问题。也许有人在这里暗示我,或者知道解决方法。

1 个答案:

答案 0 :(得分:2)

当使用普通细胞时,它对我有用。但是当我在Formatted Table(又名ListObject)中尝试它时,它会填充整个列,因为它是一个公式,而不是一个值。如果是这种情况,请尝试设置

Application.AutoCorrect.AutoFillFormulasInLists = False

在将超链接放入单元格之前(然后将其设置回True)