小编use*_*188的帖子

每次修改带有链接的单元格时,都禁止打开"更新值:"对话框

快速版本:我在一个正在使用的文件中断了链接,因为它们指的是别人的硬盘.在其他人的文件中出现错误,该文件通过在公式之前附加撇号将所有公式转换为文本.我写了一个宏来解决这个问题,但文件中有大量的外部链接.宏基本上将公式从第一行更改为下面的第二行,只需删除不必要的撇号.

1) '='C:\OtherPersonsFolderPath\[FileName.xlsm]Sheet1'!A1
2)  ='C:\OtherPersonsFolderPath\[FileName.xlsm]Sheet1'!A1
Run Code Online (Sandbox Code Playgroud)

如果我手动执行此操作,Excel将打开一个对话框,要求我通过指向正确的文件在FileName.xlsm中"更新值".我不想更新文件路径:我打算将此文件路由回原始所有文件的所有者,sans撇号.如果我点击该对话框上的"取消"按钮,我会得到预期的效果:公式更新为我需要的内容,并且值会更改为当它是一个工作链接时所用的任何内容.如果我每次弹出时手动点击框中的"取消",它工作正常,但我已经有数千个单元格遍历数十张.我需要一种方法告诉VBA在该框中说"取消",或者防止该框出现在第一位.有任何想法吗?我的代码如下:

Public Sub MyBugFix()

Application.Calculation = xlCalculationManual
'Note that I unsuccessfully tried options like "ThisWorkbook.UpdateLinks = xlUpdateLinksNever" and "Application.DisplayAlerts = False" here

Dim WS_Count As Integer
Dim I As Integer

WS_Count = ActiveWorkbook.Worksheets.Count

For I = 1 To WS_Count
    Sheets(I).Visible = True
    Sheets(I).Select
    Range("A1:BZ400").Select

    'Simple fix for embedded apostrophes in formulas (e.g., an equals sign in an IF statement)
        Selection.Replace What:="'=", Replacement:="=", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

    'More complex fix for apostrophes at …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

excel ×1

excel-vba ×1

vba ×1