VBA:插入最大公式,引用已关闭工作簿的列

时间:2015-12-01 16:10:12

标签: excel vba excel-vba max formulas

第一篇文章。我有一个工作簿,它是一个客户名称列表,每个名称都是指向sharepoint站点上的个人工作簿的链接。第二列是“最后联系人”列,其中包含公式     = MAX('https://example.com/folder/Folder/Customer Library / Area / T / [Customername.xlsm] Notes'!$ B $ 2:$ B $ 120)

我可以通过打开链接的工作簿手动制作此公式,选择客户列表中的单元格,输入“= max(”然后在链接的工作簿上突出显示我想要的范围。工作正常。

输入VBA,因为我们希望简化将客户添加到列表的过程。我有一个userform,你在textbox1中输入客户名称,以及在文本框中输入shareb的地址.2。提交按钮具有以下代码,该代码插入客户名称,其中包含指向列的目标单元格中​​的sharepoint book的链接答:这很好。我也试图在列B的相邻单元格中插入MAX公式。我可以将公式放到正确的位置。但是,我在Web引用上遇到问题,因为它是textbox2的值。当我使用textbox2.value时,它会给出错误。抱歉,这是没有网络书籍参考的代码:

Private Sub CommandButton1_Click()
Sheets("Dashboard").Select
NextFree = Range("A2:A" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row
Range("A" & NextFree).Select
ActiveCell.Hyperlinks.Add Anchor:=ActiveCell.Offset(0, 0), Address:=TextBox2.Value, TextToDisplay:=TextBox1.Value
Range("B" & NextFree).Formula = "=MAX(Notes'!$B$2:$B$120)"
UserForm1.Hide

Unload Me

End Sub

Between = Max(& Notes'......我知道需要有textbox2值,但我不理解我想的语法。“Notes”是范围在sharepoint wb上的工作表。对于客户列表的所有添加,范围都是相同的。感谢您的帮助。

更新:我现在正在尝试此代码,但会收到错误类型不匹配。

Private Sub CommandButton1_Click()
Sheets("Dashboard").Select
Dim SPbook As Workbook
Dim SPsheet As Worksheet
Dim SPrange As Range
Set SPbook = Workbooks.Open(TextBox2.Value)
Set SPsheet = Sheets("Notes")
Set SPrange = SPsheet.Range("B1:B120")
NextFree = Range("A2:A" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row
Range("A" & NextFree).Select
ActiveCell.Hyperlinks.Add Anchor:=ActiveCell.Offset(0, 0), Address:=TextBox2.Value, TextToDisplay:=TextBox1.Value
Range("B" & NextFree).Formula = "=MAX([" & SPrange & "])"
UserForm1.Hide

Unload Me

End Sub

1 个答案:

答案 0 :(得分:0)

您应该参考textbox2.Value,如下所示:

Range("B" & NextFree).Formula = "=MAX(" & textbox2.Value $ "Notes'!$B$2:$B$120)"

公式字段采用字符串,因此您只需构建连接值的字符串。

如果textbox2.Value给你一个错误,这将无法解决此问题。请包含此错误的更多详细信息,包括完整的错误消息以及从表单传递给子例程的值。的问候,