粘贴到活动单元格VBA excel

我需要将Word表格中的文本粘贴到Excel工作表中,但由于Word中的某些单元格有换行符需要在Excel中保留,因此直接复制/粘贴不是一个选项 – Excel会将任何换行符解释为细胞rest。 为了解决这个问题,我用dummy文本(例如“@@@”)replaceWord中的换行符,然后粘贴到Excel中,最后运行find / replace来replace虚拟文本和Excel兼容的换行符(ALT + 0010)。

我logging了一个macros来做到这一点:

Sub IDA() ' ' IDA Macro ' ' Keyboard Shortcut: Ctrl+q ' Sheets("Deployment").Select ActiveWindow.SmallScroll Down:=-12 Range("C2").Select ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _ False, NoHTMLFormatting:=True Selection.Replace What:="@@@", Replacement:="" & Chr(10) & "", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub 

但是,当我移动下一块文本进行粘贴时,它将粘贴回原来的目的地。 我可以看到工作表(“部署”)和范围(“C2”)都是硬编码的。 我尝试删除这些行,但是这打破了脚本 – 当我运行它时没有任何反应。

我可以简化脚本来执行search和replace,但是我不相信其他用户在粘贴到Excel时使用粘贴特殊选项,这意味着电子表格可能以Word中的其他格式结束,不想要。

如何修改我的脚本,以便将其粘贴到活动工作表和单元格中?

尝试删除2硬编码的行,并使用:

 Selection.PasteSpecial .... 

所以结束码:

 Sub IDA() ' ' IDA Macro ' ' Keyboard Shortcut: Ctrl+q ' ActiveWindow.SmallScroll Down:=-12 Selection.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _ False, NoHTMLFormatting:=True Selection.Replace What:="@@@", Replacement:="" & Chr(10) & "", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub 

这原来是一个简单的修复。 在录制macros之前,只需单击“使用相对引用”button(直接在录制button下)即可实现。 它产生了以下脚本:

 Sub IDA() ' ' IDA Macro ' ' Keyboard Shortcut: Ctrl+q ' ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _ False Selection.Replace What:="@@@", Replacement:="" & Chr(10) & "", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub 

不知道这是否是最有效的代码,但它会为我自己和另外三个人每个季度做几次这样的工作。 从来没有足够的数据被复制,以注意到不同之处。 很多努力来满足一个同事不能打扰两个按键,并确保使用粘贴特殊选项belveraching。