如何通过自动打开新工作表将文本框从一个工作表复制并粘贴到另一个工作表

时间:2018-02-11 13:38:18

标签: excel vba excel-vba

我想将一个文本框从一个工作表复制并粘贴到一个新工作表中。下面列出的宏在新的新工作簿中运行良好:

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        //do whatever you want here 
        //after the delay is over
    }
}, milliseconds);

不幸的是,当我尝试将它嵌套到一个宏时,它会自动打开一个新的工作表,方法是将名为MasterCopy工作表的工作表复制到一个新工作表中。

在这里,您将转到另一个宏,该宏自动打开一个新的工作表,复制并粘贴具有其所有功能的MasterCopy工作表。

int maxVol = am.getStreamMaxVolume(AudioManager.STREAM_SYSTEM);

您是否有关于如何嵌套这两个代码以及复制和粘贴MasterCopy表及其所有文本框和功能的建议?

1 个答案:

答案 0 :(得分:1)

循环遍历Activesheet上的对象并更改循环内的活动表可能会导致混淆。我还会修改sh.Select,因为它引用了MasterCopy上的当前形状,所以在接下来的两行中设置位置没有任何变化。 因此,您可以考虑以下改进:

Dim T as integer, L As Integer
For Each sh In Sheets("MasterCopy").Shapes
...
    ' instead of sh.Select +2 lines: 
    ActiveSheet.Shapes(sh.name).Top = sh.Top
    ActiveSheet.Shapes(sh.name).Left = sh.Left

我无法看到嵌套代码,但我也可以认为sh是形状或工作表的混淆。

但是,我真的不明白为什么在复制整张纸时需要逐个复制形状......