解决思路: 用VBA为WPS表格2005增设一个“选择性粘贴——连接”的功能,置于右键菜单方便调用。
步骤1.建立“选择性粘贴——连接”的功能的宏 本例假设你的WPS已具备VBA环境; 1.新建工作簿; 2.用快捷键ALT+F11打开VBE环境; 3.单击菜单【插入】【模块】,在模块中输入以下代码: Sub选择性粘贴__连接() DimrngAsString,NewShtAsString,OldShtAsString,texts,iAsByte,ansAsByte IfActiveSheet."工作表已保护,本程序拒绝执行!",64,"提示":ExitSub one rrorGoToendd rng=Selection.Address OldSht=ActiveSheet.Name Application.DisplayAlerts=False Worksheets.Add NemSht=ActiveSheet.Name Range("a1").Select ActiveSheet.Paste IfActiveSheet.UsedRange.Count>1Then MsgBox"只能连接单个单元格的值。",64,"andysky" GoToendd EndIf texts=Selection.Text Application.ScreenUpdating=True Sheets(OldSht).Select ans=InputBox("请选择连接于目标前还是连接于目标后。
"&Chr(10)&"1:连接于目标之前;"_ &Chr(10)&"2:连接于目标之后。","连接方式",1) Fori=1ToSelection.Count If--ans=1ThenSelection(i)=textsSelection(i) If--ans=2ThenSelection(i)=Selection(i)texts Next endd: Worksheets(NemSht).Delete EndSub 步骤2.将宏功能加入右键菜单中 1.用快捷键CTLR+R打开“工程资源管理器”,在左边的窗格中找到“ThisWorkbook”并双击; 2.在右边的代码窗口输入以代码(两段代码:第一段为将工能加到右键菜单,另一段为关闭EXCEL时恢复右键): PrivateSubWorkbook_Open() WithApplication.CommandBars("cell").Controls.Add(Type:=msoControlButton,before:=4,Temporary:=True) .Caption="选择性粘贴__连接(&Paste)" .OnAction="选择性粘贴__连接" EndWith EndSub PrivateSubWorkbook_BeforeClose(CancelAsBoolean) Application.CommandBars("CELL").Reset EndSub 步骤3.将工作簿另存为默认模板 1.关闭VBE窗口返回工作表; 2.单击菜单【文件】【另存为】,在保存类型处选择“WPS表格模板文件”。
步骤4.测试效果 1.选择菜单【文件】【本机上的模板】,在列表中选择刚才存放的模板; 2.在工作表中输入以下数据(见图五),然后复制A9,然后选择A2:A7,单击右键,选择菜单中的“选择性粘贴__连接”; 3.此时程序弹出对话框,见图七,在里面输入1表示连接于前。单击确定后最后结果如图八所示。
结束语:ET支持VBA进行二次开发,这使得它更具有灵活性。当默认的功能难以满足我们工作需求时,不妨用VBA来处理吧。
WPS表格2005的选择性粘贴中的运算项有加减乘除运算,唯独没有&运算(即连接),见图一所示。
这使工作中某些需求难以满足。图一成绩表 假设需要输入以下内容,因没有连接功能,只好将重复的字符重复的输入,无疑降低了工作效率。
客户地址 广东省东莞市全兴有限公司 广东省东莞市宏运有限公司 广东省东莞市中天有限公司 广东省东莞市月满楼有限公司 广东省东莞市兴又盛有限公式 解决思路: 用VBA为WPS表格2005增设一个“选择性粘贴——连接”的功能,置于右键菜单方便调用。 步骤1。
建立“选择性粘贴——连接”的功能的宏 本例假设你的WPS已具备VBA环境; 1。新建工作簿; 2。
用快捷键ALT+F11打开VBE环境; 3。单击菜单【插入】\【模块】,在模块中输入以下代码: Sub选择性粘贴__连接() DimrngAsString,NewShtAsString,OldShtAsString,texts,iAsByte,ansAsByte IfActiveSheWPS表格。
"工作表已保护,本程序拒绝执行!",64,"提示":ExitSub one rrorGoToendd rng=Selection。Address OldSht=ActiveSheWPS表格。
Name Application。 DisplayAlerts=False WorksheWPS表格s。
Add NemSht=ActiveSheWPS表格。Name Range("a1")。
Select ActiveSheWPS表格。Paste IfActiveSheWPS表格。
UsedRange。Count>1Then MsgBox"只能连接单个单元格的值。
",64,"andysky" GoToendd EndIf texts=Selection。Text Application。
ScreenUpdating=True SheWPS表格s(OldSht)。 Select ans=InputBox("请选择连接于目标前还是连接于目标后。
"&Chr (10)&"1:连接于目标之前;"_ &Chr (10)&"2:连接于目标之后。","连接方式",1) Fori=1ToSelection。
Count If--ans=1ThenSelection(i)=texts&Selection(i) If--ans=2ThenSelection(i)=Selection(i)&texts Next endd: WorksheWPS表格s(NemSht)。 DelWPS表格e EndSub 步骤2。
将宏功能加入右键菜单中 1。用快捷键CTLR+R打开“工程资源管理器”,在左边的窗格中找到“ThisWorkbook”并双击; 2。
在右边的代码窗口输入以代码(两段代码:第一段为将工能加到右键菜单,另一段为关闭Excel时恢复右键): PrivateSubWorkbook_Open() WithApplication。 CommandBars("cell")。
Controls。Add(Type:=msoControlButton,before:=4,Temporary:=True) 。
Caption="选择性粘贴__连接(&Paste)" 。OnAction="选择性粘贴__连接" EndWith EndSub PrivateSubWorkbook_BeforeClose(CancelAsBoolean) Application。
CommandBars("CELL")。ResWPS表格 EndSub。
以WPS 2019版为例
1. 打开表格,选中需要复制的表格,鼠标右键选择“复制”;
2. 打开文档,选中需要粘贴的位置,鼠标右键选择“选择性粘贴”;
3.在弹出框根据需要选择粘贴方式即可。