Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel .公式更改字符串如何修复?_Excel_Vba - Fatal编程技术网

Excel .公式更改字符串如何修复?

Excel .公式更改字符串如何修复?,excel,vba,Excel,Vba,我在下面尝试做的是一个特殊的复制,它粘贴指定的范围,而不是范围。 我在一个工作簿中选择要粘贴的单元格,然后在另一个工作簿中选择要复制的单元格,然后运行宏 这里的问题是当我使用C.Formula=String2时,它会更改字符串名称 Namedrange结果--Dog String1结果--=[testA.xlsx]表1 String2结果--=[testA.xlsx]表1!狗 但是在公式设置为=testA.xlsx之后!狗 这里怎么了? 还有没有更好的方法粘贴带有命名范围的链接 Sub M

我在下面尝试做的是一个特殊的复制,它粘贴指定的范围,而不是范围。 我在一个工作簿中选择要粘贴的单元格,然后在另一个工作簿中选择要复制的单元格,然后运行宏

这里的问题是当我使用C.Formula=String2时,它会更改字符串名称

  • Namedrange结果--
    Dog
  • String1结果--
    =[testA.xlsx]表1
  • String2结果--
    =[testA.xlsx]表1!狗
但是在公式设置为
=testA.xlsx之后!狗

这里怎么了? 还有没有更好的方法粘贴带有命名范围的链接


Sub Macro7()

     Dim Namedrange As String

     Namedrange = ActiveCell.Name.Name
     Selection.Copy
     ActiveWindow.ActivatePrevious
     ActiveSheet.Paste Link:=True


     Application.Calculation = xlCalculationManual

     For Each C In Selection
     endstring = InStr(C.Formula, "!")
     String1 = Left(C.Formula, endstring)
     String2 = String1 + Namedrange
     MsgBox endstring
     MsgBox String1
     MsgBox String2
     C.Formula = String2
     Next

     Application.Calculation = xlCalculationAutomatic



End Sub


看起来这与代码无关。工作原理是,我将命名范围范围范围更改为当前工作表,因此命名范围结果现在是“Sheet1!Dog”