Excel VBA:公式没有正确inputstring
我试图完成一个脚本,将允许用户select另一个excel文件,当单元格被双击,然后该excel文件被用来放入一个公式到主excel文件。
我无法单独使用单元格值,因为在脚本完成时能够在配方栏中看到文件path。 所以问题是input的公式不匹配它应该从中拉的string文本。
为了澄清,我使用的称为FormulaPath的string最后是一个以“ ...\00975-006-00[00975-006-00.xls]QuoteDetails'!
“为结尾的公式,这将是正确的公式。
但是当我用这个公式input一个范围时:
Range("A1").Formula = "=" & FormulaPath & "$C$100"
实际公式最后input为"...[00975-006-00[00975-006-00.xls]Quote Details]00975-006-00[00975-006-00.xls]Q'!$C$100
注意重复?
我现在在移动,所以如果格式是古怪的,请原谅我。 下面的完整脚本。 谢谢!
Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim ImportWB, QuoteWB As Workbook Dim AdInsWS, AdInsCostWS As Worksheet Dim ImportPathName As Variant Dim FormulaPath As String Set QuoteWB = ThisWorkbook Set AdInsWS = QuoteWB.Sheets("Ad-Ins") Set AdInsCostWS = QuoteWB.Sheets("Ad-ins cost") If Not Intersect(Target, Range("B:B")) Is Nothing Then 'set default directory ChDrive "Y:" ChDir "Y:\Engineering Management\Manufacturing Sheet Metal\Quotes" 'open workbook selection ImportPathName = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*), *.xls*", Title:="Please select a file") If ImportPathName = False Then 'if no workbook selected MsgBox "No file selected." ElseIf ImportPathName = ThisWorkbook.Path & "\" & ThisWorkbook.Name Then 'if quote builder workbook selected MsgBox "Current quote workbook selected, cannot open." Else Application.DisplayAlerts = False Application.ScreenUpdating = False Workbooks.Open Filename:=ImportPathName, UpdateLinks:=False Set ImportWB = ActiveWorkbook FormulaPath = "'" & ImportWB.Path & "[" & ImportWB.Name & "]Quote Details'!" AdInsCostWS.Range("B3").Formula = "=" & FormulaPath & "$C$100" ImportWB.Close End If Cancel = True Application.DisplayAlerts = True Application.ScreenUpdating = True End If End Sub
我通过简单地向FormulaPathstring添加一个反斜杠来让脚本工作:
FormulaPath = "'" & ImportWB.Path & "\[" & ImportWB.Name & "]Quote Details'!"
ImportWB.Path正在导入带有excel名称的Path,分割pathstring