【发布时间】:2013-07-19 05:46:01
【问题描述】:
我是 VBA 新手,虽然我用其他语言编写过一些代码,所以我了解一些一般概念。我需要为 excel 编写一个宏,该宏将工作簿中的一些数据复制到与新工作簿中连续的单个列不连续的单个列中。困难的部分是我需要用户提示选择正在复制的数据,并且每个选择的大小各不相同。最后,具有单列的新工作簿将保存为制表符分隔的文本文件。这就是我的想法,是一种通用的编码语言。
我会用斜体来区分变量,“引号”来区分值,粗体来区分编码关键词。我假设代码将从新的空工作簿运行。
代码:
%%% 初始化变量。
MoreCells = "1" %%%boolean 是/否稍后提示
SelectedCells = "稍后在提示时选择范围"
SelectedCellsMagnitude = "# of cells in selectedcells"
DestinationStartCell = "A1" %%%cell 复制到
打开工作簿“要从.xlsx 复制的工作簿”
而 morecells = "1"
提示用户选择范围
设置“选定范围”= selectedcells
设置“选定单元格的大小”= 选定单元格的大小
将 selectedcells 复制到从单元格 destinationstartcell 开始的新工作簿
设置 destinationstartcell = destinationstartcell + selectedcellsmagnitude
提示用户“还有要复制的单元格吗?”
如果 "yes" 设置 morecells = "1"
else 设置 morecells = "0"
将新工作簿另存为制表符分隔值文本文件,名为“newworkbookname.txt”,位于目标“\new\workbook\destination”
:结束代码
任何帮助将不胜感激。或者,就此而言,洞察这在 VBA 和 excel 中是否可行。
提前致谢!
【问题讨论】:
-
绝对有可能。如果您需要用户的额外输入,那么您还必须合并一个 VBA 用户表单。所以代码基本上会调用用户表单,在它关闭时从中获取数据,然后继续以愉快的方式继续下去。然而,当你说“量级”时,我对你的意思感到困惑
-
我认为这是有道理的。我所说的幅度只是指选择的单元格的数量。这个想法是,当循环将下一个选择复制到新工作簿中时,此信息允许循环从正确的单元格开始(因此它不会覆盖先前复制的单元格)。