我正在为Excel文档编写VBA脚本。这就是我想要发生的事情。
需要的信息
从其他程序复制的链接会自动格式化为:
FirstName LastName
<link_to_client_in_program>
因此,链接打印出客户端的名字,然后是最后一个,然后在下一行打印出一个超链接,指向嵌套在胡萝卜括号内的客户端在线配置文件。
到目前为止,我有工作代码提示用户添加链接,但用户可以粘贴链接的文本字段不显示多行,因此它只显示客户端名字和姓氏。
我需要帮助
我当前的代码
Sub addClient()
Dim clientInfo As String
Dim clientName As String
Dim clientURL As String
clientInfo= InputBox("Click on the 'Copy a Link' in CRM for the Client and paste in the field below.", "Client Information")
clientName = Left(clientInfo, Application.WorksheetFunction.Find("<", clientInfo) - 1)
clientURL = Right(clientInfo, Application.WorksheetFunction.Find("<", clientInfo) - 1)
Range("B7").Value = clientName
End Sub
错误
当我运行脚本并单击按钮弹出窗口时,我将链接粘贴到提供的文本框中。当我点击&#34; OK&#34;我收到一条错误消息,&#34;运行时错误&#39; 1004&#39;:无法获取WorksheetFunction类的Find属性&#34;。
如何
答案 0 :(得分:0)
你正在寻找这样的东西来做一个有效的Find
- 这与工作表函数Find
在A列(自下而上)中查找单元格B7上的最后一个匹配。
如果找到匹配项,则会将B7的内容添加到A中的该单元格中(因此您需要根据自己的需要稍微调整一下)。
Sub UpdateMe()
Dim rng1 As Range
If Len([b7].Value) > 0 Then
Set rng1 = Columns("A:A").Find([b7].Value, [a1], xlFormulas, xlWhole, , xlPrevious)
If Not rng1 Is Nothing Then
rng1.Value = rng1.Value & " " & [b7].Value
Else
MsgBox "Client not find", vbCritical
End If
Else
MsgBox "No value to find", vbCritical
End If
End Sub
答案 1 :(得分:-1)
Application.WorksheetFunction.Find
将返回1004
错误。看一下您的输入框收到的内容clientInfo
。我敢打赌,你不包括&#34;&lt;&#34;粘贴链接时。
至于你的其他问题:
我在B列中找到第一个可用单元格的方式是:
Do Until Sheets("Sheet1").Cells(i,2).Value = ""
i = i+1
Loop
Set rClientTarget = Range(Cells(i,2).Address)
使用宏录制器制作:
Sheets("Sheet1").Hyperlinks.Add Anchor:=rClientTarget, Address:= "http://www.stackoverflow.com", TextToDisplay:="asdf"