使用VBA删除公式中对文件名的引用
我试图从Excel工作簿中复制一系列工作表,并将其粘贴到新的工作簿中。 我遇到的问题是,当我将工作表复制到新的工作簿中时,公式仍旧是对公式中旧工作簿的引用。 我试图获取工作簿的名称,并用空字符replace,但我相信我的代码是引用新的工作簿,而不是旧的。 我尝试了一个函数,以及“ThisWorkbook”以及“ActiveWorkbook”,但似乎没有任何工作。
这是function….
Function MyName() As String MyName = ThisWorkbook.Name End Function
这里是完整的代码….
Sub CopyToNewWorkbook() Dim ws As Worksheet Dim i As Integer Dim wbCurrent As Workbook Dim wbName As Variant Dim wbNew As Workbook 'wbName = ActiveWorkbook.Name 'wbName = ThisWorkbook.Name Set wbCurrent = ActiveWorkbook Set wbNew = Workbooks.Add For Each ws In wbCurrent.Sheets Do While wbNew.Sheets.Count <= (wbCurrent.Sheets.Count - 3) For i = 3 To wbCurrent.Sheets.Count wbCurrent.Sheets(i).Copy after:=wbNew.Sheets(wbNew.Sheets.Count) Next i Loop Next ws wbNew.Activate Sheets("Sheet1").Select ActiveWindow.SelectedSheets.Delete Cells.Replace What:=MyName, Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, _ MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End Sub
你不能只使用BreakLinks方法吗?
'Get all links ExternalLinks = wbNew.LinkSources(Type:=xlLinkTypeExcelLinks) 'Break each link For x = 1 To UBound(ExternalLinks) wbNew.BreakLink Name:=ExternalLinks(x), Type:=xlLinkTypeExcelLinks Next x
我能用下面的代码得到预期的结果。
Sub CopyToNewWorkbook() Dim ws As Worksheet Dim i As Integer Dim wbCurrent As Workbook Dim wbName As Variant Dim wbNew As Workbook Call MyName wbName = MyName Set wbCurrent = ActiveWorkbook Set wbNew = Workbooks.Add For Each ws In wbCurrent.Sheets ws.Visible = xlSheetVisible Do While wbNew.Sheets.Count <= (wbCurrent.Sheets.Count - 3) For i = 3 To wbCurrent.Sheets.Count wbCurrent.Sheets(i).Copy after:=wbNew.Sheets(wbNew.Sheets.Count) Next i Loop Next ws wbNew.Activate Sheets("Sheet1").Select ActiveWindow.SelectedSheets.Delete Cells.Replace What:=MyName, Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, _ MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False Cells.Replace What:="'[" & wbName & "]", Replacement:="'", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:= _ False, SearchFormat:=False, ReplaceFormat:=False End Sub
- 我有一个macros,打开一本新书,运行macros,保存并closures – 但保存提示是停止工作
- 手动replace工作时,Excel VBAreplacebuild立date格式
- 在这个macros中需要改变一个小东西
- 我怎样才能alignment一个单元格中的RichTextString?
- 文件保存为CSV格式iin excel vba
- 剪切并粘贴特殊字体数据,将粘贴到Excel中不同列中的其他数据的数据alignment
- Excel VBA – 以编程方式将代码插入到工作表的CodeModule中的特定子macros
- Excel VBA – 在我的工作表上插入GIFanimation
- 使用如果然后为整个工作簿来查看平均值在vba