我可以使用 Excel 的自动填充和自定义模式吗?
Can I use Excel's autofill with a custom pattern?
我正在尝试自动填充以下行;
Row A1
Row A1
Row A2
Row A2
...
Row A12
Row A12
Row B1
Row B1
Row B2
Row B2
....
从 A-P,1-12
如何快速自动填充?
目前,向下拖动只是重复模式而不是上升模式。
提前致谢。
通常在编程中我会循环 A-P 并在其中嵌套一个 1-12 循环。但是,在 excel 我不太确定。
通过一些数学运算使用 INDEX:
=INDEX($A:$P,MOD(ROW(1:1)-1,12)+1,INT((ROW(1:1)-1)/12)+1)
编辑,我理解错了:
=CHAR(INT((ROW(1:1)-1)/12)+65)&MOD(ROW(1:1)-1,12)+1
将在您向下拖动时用您的图案填充该列。
如果您不反对在 B 中有一个可以自动填充的辅助列,您可以从 A1
开始一直复制它,然后将值复制并特殊粘贴回去。只需确保自动填充从 0 开始到您想要的任意数量的单元格
=SUBSTITUTE(ADDRESS(1,CEILING((B1+0.01)/12,1),4),"1","") & MOD(B1,12)+1
编辑
抱歉耽搁了,但我抽出时间在 VBA 中重写它,这样它就不再需要辅助列了。
Sub Filler()
Dim i As Long
For i = 0 To 191
With ThisWorkbook.Worksheets(1)
.Cells(i + 1, 1) = Split(.Cells(1, Int((i + 0.01) / 12) + 1).Address, "$")(1) & i Mod 12 + 1
End With
Next i
End Sub
Sub DAdwadw()
Dim i As Integer
Dim arr(0 To 16) As String
Dim count As Integer
arr(1) = "A"
arr(2) = "B"
arr(3) = "C"
arr(4) = "D"
arr(5) = "E"
arr(6) = "F"
arr(7) = "G"
arr(8) = "H"
arr(9) = "I"
arr(10) = "J"
arr(11) = "K"
arr(12) = "L"
arr(13) = "M"
arr(14) = "N"
arr(15) = "O"
arr(16) = "P"
arr(17) = "Q"
arr(18) = "R"
arr(19) = "S"
arr(20) = "T"
arr(21) = "U"
arr(22) = "V"
arr(23) = "W"
arr(24) = "X"
arr(25) = "Y"
arr(26) = "Z"
count = 1
For i = 1 To 8
Dim letter As String
For p = 1 To 58
letter = arr(i) & p
Cells(count, 1).Value = letter
Cells(count + 1, 1).Value = letter
count = count + 2
Next p
Next i
End Sub
我就是这样完成的。
我想你正在寻找类似的东西:
Option Explicit
Public Sub TestGeneratePattern()
GeneratePattern Rows:=12, Columns:=16
End Sub
Public Sub GeneratePattern(Rows As Long, Columns As Long)
Dim strRow As String
Dim strCol As String
Dim iRow As Long
For iRow = 1 To Rows * Columns
strRow = iRow - ((iRow - 1) \ Rows) * Rows 'count rows from 1 to 12
strCol = Cells(1, ((iRow - 1) \ Rows) + 1).Address(True, False) 'increase column every 12 rows
strCol = Left(strCol, InStr(1, strCol, "$") - 1) 'get column letter
Cells(iRow * 2 - 1, "A").Resize(RowSize:=2).Value = strCol & strRow 'write value in 2 cells at once
Next iRow
End Sub
我正在尝试自动填充以下行;
Row A1
Row A1
Row A2
Row A2
...
Row A12
Row A12
Row B1
Row B1
Row B2
Row B2
....
从 A-P,1-12
如何快速自动填充? 目前,向下拖动只是重复模式而不是上升模式。
提前致谢。
通常在编程中我会循环 A-P 并在其中嵌套一个 1-12 循环。但是,在 excel 我不太确定。
通过一些数学运算使用 INDEX:
=INDEX($A:$P,MOD(ROW(1:1)-1,12)+1,INT((ROW(1:1)-1)/12)+1)
编辑,我理解错了:
=CHAR(INT((ROW(1:1)-1)/12)+65)&MOD(ROW(1:1)-1,12)+1
将在您向下拖动时用您的图案填充该列。
如果您不反对在 B 中有一个可以自动填充的辅助列,您可以从 A1
开始一直复制它,然后将值复制并特殊粘贴回去。只需确保自动填充从 0 开始到您想要的任意数量的单元格
=SUBSTITUTE(ADDRESS(1,CEILING((B1+0.01)/12,1),4),"1","") & MOD(B1,12)+1
编辑
抱歉耽搁了,但我抽出时间在 VBA 中重写它,这样它就不再需要辅助列了。
Sub Filler()
Dim i As Long
For i = 0 To 191
With ThisWorkbook.Worksheets(1)
.Cells(i + 1, 1) = Split(.Cells(1, Int((i + 0.01) / 12) + 1).Address, "$")(1) & i Mod 12 + 1
End With
Next i
End Sub
Sub DAdwadw()
Dim i As Integer
Dim arr(0 To 16) As String
Dim count As Integer
arr(1) = "A"
arr(2) = "B"
arr(3) = "C"
arr(4) = "D"
arr(5) = "E"
arr(6) = "F"
arr(7) = "G"
arr(8) = "H"
arr(9) = "I"
arr(10) = "J"
arr(11) = "K"
arr(12) = "L"
arr(13) = "M"
arr(14) = "N"
arr(15) = "O"
arr(16) = "P"
arr(17) = "Q"
arr(18) = "R"
arr(19) = "S"
arr(20) = "T"
arr(21) = "U"
arr(22) = "V"
arr(23) = "W"
arr(24) = "X"
arr(25) = "Y"
arr(26) = "Z"
count = 1
For i = 1 To 8
Dim letter As String
For p = 1 To 58
letter = arr(i) & p
Cells(count, 1).Value = letter
Cells(count + 1, 1).Value = letter
count = count + 2
Next p
Next i
End Sub
我就是这样完成的。
我想你正在寻找类似的东西:
Option Explicit
Public Sub TestGeneratePattern()
GeneratePattern Rows:=12, Columns:=16
End Sub
Public Sub GeneratePattern(Rows As Long, Columns As Long)
Dim strRow As String
Dim strCol As String
Dim iRow As Long
For iRow = 1 To Rows * Columns
strRow = iRow - ((iRow - 1) \ Rows) * Rows 'count rows from 1 to 12
strCol = Cells(1, ((iRow - 1) \ Rows) + 1).Address(True, False) 'increase column every 12 rows
strCol = Left(strCol, InStr(1, strCol, "$") - 1) 'get column letter
Cells(iRow * 2 - 1, "A").Resize(RowSize:=2).Value = strCol & strRow 'write value in 2 cells at once
Next iRow
End Sub