如何根据数字自动更改列的长度0-n
,在哪里n = a number in a certain field
?
我正在考虑这样的事情:
编辑: 似乎我没有很好地解释我想要什么。这是第二次尝试,我正在寻找一种解决方案,让我可以在一个字段中输入一个数字,这将创建一个从 0 到输入数字的数字列。这是使用不同数字时的样子。注意:我只需要一个用于数字输入的字段,然后它将创建数字列,如图所示。
答案1
这就是你想要的。
在您的示例中,您有 4 列(C、D、E 和 F)。好吧,您可以添加其他列(G、H、I、J 等),并且下面的代码仍将针对所有这些列执行。
不过,您需要告诉它一些信息,例如 rowsRequired(在本例中是第 2 行,它是您定义要求的行(例如您想要多少个值))。
你需要告诉它从哪一行开始推送结果,在本例中我选择了第 4 行
您需要告诉它起始列,在本例中为 C
Sub DoTheThing()
@AHOY ME HEARTIES, SEE BELOW FOR WHAT YE CAN EDIT
Dim rowsRequired As Integer
rowsRequired = 2 ' THIS IS THE ROW NUMBER WHERE YOU ENTER THE NUMBER YOU WANT TO SEE
Dim startingRow As Integer
startingRow = 4 ' THIS IS THE ROW NUMBER YOU WANT TO START SHOWING RESULTS
Dim startingColumn As String
startingColumn = "C" ' THIS IS THE FIRST COLUMN
'I SUGGEST YOU LEAVE THE BELOW ALONE LESS YE WALK THE PLANK
Dim startingColumnInt As Integer
startingColumnInt = Asc(startingColumn)
Do While (Range(Chr(startingColumnInt) & rowsRequired).Value <> "")
Dim valToUse As String
valToUse = Range(Chr(startingColumnInt) & rowsRequired).Value
Dim row As Integer
row = startingRow
Dim i As Integer
For i = 0 To valToUse
Range(Chr(startingColumnInt) & row).Value = i
row = row + 1
Next i
startingColumnInt = startingColumnInt + 1
Loop
End Sub
前
VBa 执行后
请记住,VBa 通常没有撤消按钮,因此请确保先保存或创建备份!
答案2
这里有一些代码可以帮助您入门(基于图像中的单元格位置)。
Sub SeriesFill()
Dim RowCount As Long
Range("C4:C1000").Cells.Clear
RowCount = Range("C2").Cells.Value + 4
Range("C4").Cells.Value = "0"
Range("C4").AutoFill Destination:=Range("C4:C" & RowCount), Type:=xlFillSeries
End Sub
这已在 Excel 2010 中测试过。您需要确定如何触发它并修改它以在其他列上工作。