这一次,我有一个单元格保持一个自然数,让我们说10.从另一个单元格开始,对于它右边的9列,我想显示数字1到10.如果我的参考单元格保持20但是,我想从另一个单元格开始,并在20列中显示数字1到20。我希望你能得到主旨。
有没有一个很好的方法来做到这一点,首先,没有VBA?如果没有,有什么好办法用VBA做到这一点?是否有一些事件我应该抓住一个单元格,这将允许我然后手动插入我想要的值?我对Excel和VBA的了解并不是很好,如果问题很简单,那就很抱歉。
提前谢谢大家!
答案 0 :(得分:3)
假设具有数字的单元格是A3,您想要在F3中启动该系列。在F3中,把这个公式
=IF(COLUMN()-5<=$A$3,COLUMN()-5,"")
复制F3并粘贴到右侧(或填充右侧)以获取您可能需要的任意数量的列。如果A3永远不会超过100,那么填充106列。如果要从F以外的列开始,则需要更改公式的-5部分。
答案 1 :(得分:2)
您可以使用公式执行此操作:
=IF(COLUMN()<$A$35+2,COLUMN()-1,"")
其中$ 35美元是参考单元格,我在B列中启动了“另一个单元格”。如果从后面的列开始,则需要相应地调整公式中的+2和-1。只需将公式拖到您希望的最大数字的位置,您也可以对参考单元格进行验证,以确保它低于最大数量和整数。
答案 2 :(得分:2)
您将无法使用UDF,因为在多个单元格中更改了值。所以最简单的方法(使用VBA)可能与Change事件有关。如果值在命名范围“holdvalue”中并且您想要在“valueStart”范围内启动数字,那么这将起作用:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
If Target.Address = Range("holdvalue").Address Then
For i = 1 To Range("holdvalue")
Range("valueStart").Offset(0, i - 1) = i
Next i
End If
End Sub
注意:这不涉及清除值。