Excel VBAmacros为复杂的复制function

我是VBA新手,虽然我已经做了一些其他语言的编码,所以我理解一些一般的概念。 我需要为excel编写一个macros,将一个工作簿中的一些数据复制到一个不连续的单个列中的一个连续的新工作簿的单个列中。 困难的部分是我需要复制的数据通过用户提示进行select,每个select的大小都不一样。 最后,具有单个列的新工作簿将被保存为制表符分隔的文本文件。 这就是我想到的,用一般的编码语言。

我将用斜体来区分variables,“引号”来区分数值,并大胆地区分编码关键字。 我假设代码将从新的空工作簿运行。

码:

%%%初始化variables。
MoreCells =“1”%%%布尔型是/否稍后提示
SelectedCells =“稍后提示时select的范围”
SelectedCellsMagnitude =“选中单元格中的单元格数量”
DestinationStartCell =“A1”%%%单元格,以从要复制的范围开始

打开工作簿“工作簿从.xlsx复制”

而更多的 细胞 =“1”
提示用户select范围
设置“选定的范围”= selectedcells
设置“ selectedcells的大小”= selectedcellsmagnitude
selectedcells复制到从单元destinationstartcell开始的新工作簿
设置destinationstartcell = destinationstartcell + selectedcellsmagnitude
提示用户“是否有更多的单元格复制?”
如果 “是”将更多单元设置为“1”
else set morecells =“0”

将新工作簿保存为目标“\ new \ workbook \ destination”中名为“newworkbookname.txt”的制表符分隔值文本文件

:END CODE

任何帮助将非常感激。 或者,对于这个问题,洞察力是否可以在Excel中用VBA来实现。

提前致谢!

将工作簿和图纸值更改为适用的工作簿和图纸

Sub usermove() Dim c, Rng1 As Range Dim i As Integer i = 1 'ask for input userselect: ThisWorkbook.Sheets("Sheet1").Activate Set Rng1 = Application.InputBox("Please Select Cells", Type:=8) 'loop For Each c In Rng1.Cells ThisWorkbook.Sheets("Sheet2").Activate Cells(i, 1).Value = c.Value i = i + 1 Next 'Prompt for more input continue = MsgBox("Are there more cells to select?", vbYesNo) If continue = vbYes Then GoTo userselect 'then save ChDir "path" ActiveWorkbook.SaveAs Filename:="path\Book1.txt", FileFormat _ :=xlText, CreateBackup:=False End Sub