macros:复制范围到下一个连续的空白列(s)

大家。 新手在这里。

我已经尽力了解并能够通过数百个macros代码,允许用户专门单击button将范围复制并粘贴到下一个空白列,并且只要用户保持粘贴新列点击button。 不幸的是,所创build的代码的小小变化将会有所不同。 我无法理解为什么。

我已经pipe理昨天晚上打大奖,使其工作完美无瑕,直到它因为某种原因坠毁,就像我保存文件。 之后没有工作。

目的:为了分析目的,C9:C43的范围将始终作为基准年的数据。 如果用户有一年的数据价值,则不需要复制。 如果用户有5年的数据,用户将点击5次button。 副本将包括格式,公式和列宽。

此外,考虑到C列的范围是基数,单元格C9将类似于年,即2015年。如果用户将C9改变为例如2010,则以下列将具有D9 = 2011,等等。

我认为一个对话框会更好地expression我正在处理的目标,但是对于我目前对macros和VBA的理解来说,这似乎太牵强了。

这是我昨天晚上使用的代码,它在保存文件之后神秘地崩溃之前运行:

Dim rngSource As Range Dim rngDestination As Range Set rngSource = Range("C9:C43") Set rngDestination = Cells(9, Columns.Count).End(xlToLeft).Offset(0, 1) Range("C9:C43").Copy Range("D9").Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("D9").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "=RC[-1]+1" rngSource.Copy destination:=rngDestination 

你们是惊人的,你们的工作和合作深受赞赏。

温暖的问候,

虽然这不能回答你关于冻结代码的问题,但我相信它可以帮助你解决复制一系列列的根本问题

如果你使用单元格A1为用户指定他们想要添加的列数,然后按button可以调用range.autofill与一系列填充(这是一年的工作,但我不知道你有什么,行)

 Sub Button_Click() Dim x As Integer x = Range("A1").Value Range("C9:C43").AutoFill Destination:=Range("C9:" & Cells(43, x + 3).Address), Type:=xlFillSeries End Sub