未知的长度数组到单元格?

这一次,我有一个单元格保存一个自然数,比如说10.从另一个单元格开始,在它的右侧9列,我想显示数字1到10.如果我的参考单元格保持20,我想从另一个单元格开始,在20列中显示数字1到20。 我希望你能得到这个主意。

首先,如果没有VBA,有没有一个好办法呢? 如果没有,是否有一个很好的方法来与VBA做到这一点? 是否有一个事件,我应该抓住一个细胞,这将允许我手动插入我想要的值? 我的Excel和VBA的知识不是很好,所以如果问题很简单,不好意思。

谢谢大家!

您将无法使用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 

注意:这不涉及清除值。

假设编号为A3的单元格和您想要在F3中开始编号的单元格。 在F3中,把这个公式

  =IF(COLUMN()-5<=$A$3,COLUMN()-5,"") 

将F3复制并粘贴到右侧(或右侧填充)以获得您所需的任意列数。 如果A3不会超过100,那么请右键填写106栏。 如果您想从F以外的列开始,则需要更改公式的-5部分。

你可以用公式来做到这一点:

 =IF(COLUMN()<$A$35+2,COLUMN()-1,"") 

其中$ A $ 35是参考单元格,并且我开始了B列中的“另一个单元格”。如果从较后一列开始,则需要相应地调整公式中的+2和-1。 只需将公式拖出到您期望的最大数量即可,也可以在参考单元上进行validation,以确保它低于最大数量和整数。