繁体   English   中英

谷歌表格如何编写脚本:将标签复制到新文件?

[英]Google sheets how to script: copy tab to new file?

我是使用 Google 表格的新手,并且试图在 Google 表格中重现最简单的 Excel 宏之一。

我正在尝试做的事情:

在源文件中

  • 跳转到源选项卡 select 此选项卡(包含计算)和复制(工作)
  • 跳转到临时选项卡仅粘贴值和格式(有效)
  • 将临时选项卡复制到新文件(不起作用)

这将是我的 excel 代码供参考

Sub EXPORT()
' ---------------------------------------------------------------
' GRAB SOURCE TAB & COPY
' ---------------------------------------------------------------
    Sheets("SOURCE").Select
    Cells.Select
    Selection.Copy
' ---------------------------------------------------------------
' SELECT TEMP TAB & PASTE VALUES & FORMAT (WITHOUT CALCULATIONS)
' ---------------------------------------------------------------
    Sheets("TEMP").Select
'
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
'
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
'
    Range("A1").Select
' ---------------------------------------------------------------
' COPY TEMP TAB OUT TO NEW FILE
' ---------------------------------------------------------------
    Range("A1").Select
    Sheets("TEMP").Select
    Application.CutCopyMode = False
    Sheets("TEMP").Copy

End Sub

我还想做一些其他事情(例如根据 cel 确定新文件名等)等,但经过 2 天的搜索,我只是不明白为什么我会坚持这么简单的事情。

手动它只会是

  • 右键单击选项卡
  • 复制到 -> 新电子表格

我已经或多或少尝试了一切,从简单地记录宏(似乎没有记录新的电子表格操作)到从比我复杂得多的问题中实现部分代码(最终做错了错误) ,所以如果这是一个简单的问题,我真的很抱歉,但我很困惑:(

非常感谢阅读

蒂姆

如果您的目标是开发一个仅将一个特定工作表复制到新电子表格的宏,您可以使用Apps 脚本 然后你只需要导入 Apps Script function 并像宏一样运行它。

可以使用SpreadsheetApp.create()创建一个新工作表,然后使用Range.copyTo()填充它。 您可以使用SpreadsheetApp.getActiveSheet()确保仅复制活动工作表。

function myFunction() {
  var newSpreadsheet = SpreadsheetApp.create("My new Sheet")
  SpreadsheetApp.getActiveSheet().copyTo(newSpreadsheet);
}

我假设您知道如何导入宏,但如果您需要进一步的帮助,请在下方留言。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM