【发布时间】:2018-10-23 21:48:58
【问题描述】:
我正在尝试编写相当于单击并将单元格的角拖动到末尾的 VBA 代码。插图:
我尝试了几种我在网上找到的不同建议,但总是遇到错误。
下面是我目前正在研究的生产线。但我收到运行时错误“1004”:应用程序定义或对象定义错误。
Range("A4").Select
ActiveCell.AutoFill Range(ActiveCell, ActiveCell.Offset(0, 1).End(xlRight).Offset(0, -1))
有关更多上下文,这里是我正在处理的整个脚本:整个脚本的屏幕截图:
这是根据我自己的逻辑在我开始在线寻找答案之前的原始脚本行:
Selection.Autofill Destination:=Range("A4":mylastcell_4), Type:=xlFillDefault
mylastcell_4 已在脚本顶部声明(请参阅整个脚本的屏幕截图)。我也尝试更改为"A4",mylastcell_4,但仍然收到错误消息。
我对 VBA 非常陌生,不知道从哪里开始。
我试过了
.Range(.Cells(4, "A"), .Cells(1, .Columns.Count).End(xlToLeft).Offset(3, 0)).Formula = "=concatenate(a2, a1, a3)"
以下答案之一建议了这一点。但是,如果我在第 1 行中有 5 个单元格,这只会给出结果。我需要更大的灵活性,因为可能有 2 个值到 500 个值可供使用。 Image of results of above suggested script
我还发现,沿着这条路线走似乎会破坏我知道单独工作的下一批串联 - 希望它是需要改变的简单的东西? Script used for next concatenation。
本练习的最终目标是获取准备好直接进入 SQL 的文本列表。即 a b c d e 变成 'a','b','c','d','e' 都在一个单元格中。
【问题讨论】: