[英]Google sheets how to script: copy tab to new file?
我是使用 Google 表格的新手,并且试图在 Google 表格中重现最简单的 Excel 宏之一。
我正在尝试做的事情:
在源文件中
这将是我的 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.