我正在尝试从命名范围自动填充到其右邻居单元格。原始范围包含组合单元格,大小为4x4
个单元格。我的问题是,Autofill
- 方法需要Destination:=Range("...")
,并且不需要Destination:=xlSameAreaToTheRight
之类的内容。
解决方法是,如果我可以做类似
的事情Range("origin").AutoFill Destination:=( Range("origin").Area + Rows(4) ), _
Type:=xlFillDefault
那么如何以A1:D4
格式找到命名范围的行和列,并添加4个cols?
感谢您的支持!
答案 0 :(得分:3)
我不确定你想得到什么结果,但这里是你特定问题的答案:
您可以使用.Address
以$ A $ 1:$ D $ 4格式获取Range as String,并获取列数量,只需将.Columns.Count
添加到指定范围。 (使用偏移量可以将列数量添加到您的范围内的活动单元格中。)
Dim TestRange As String
Dim AmountColumns As Integer
TestRange = ActiveWorkbook.Sheets(1).Range("Test").Address
AmountColumns = ActiveWorkbook.Sheets(1).Range("Test").Columns.Count
答案 1 :(得分:0)
感谢stema的回答,我找到了一个(非常简单的)解决方案:
要将行或列添加到命名范围并将其用作自动填充目标,只需执行
即可Range("origin").AutoFill Destination:=( Range("origin").Range("A1:H2") ), _
Type:=xlFillDefault
什么会自动填充四列和两行到我们的“原点”:
| 1 | 2 |
| 1,1 | 1,2 | 2,1 | 2,2 |
这导致:
| 1 | 2 | 3 | 4 |
| 1,1 | 1,2 | 2,1 | 2,2 | 2,7 | 3,12 | 3,54 | 3,96 |
答案 2 :(得分:0)
这是使用@stema建议的一种方法。
Sub namedfill()
Dim locOrig As String
Dim firstCell As String
Dim lastCell As String
'Pluck address of top-left and bottom-right cells from .Address string
locOrig = Range("Origin").Address
firstCell = Left(locOrig, 4)
lastCell = Right(locOrig, 4)
Range("Origin").AutoFill Destination:=Range(firstCell, Range(lastCell).Offset(0, 4)), Type:=xlFillDefault
End Sub