【问题标题】:Enter UserForm Data into the next empty cell range在下一个空单元格区域中输入用户窗体数据
【发布时间】:2017-10-07 21:24:51
【问题描述】:

我有一个接受文本输入的用户窗体和一个选项按钮选择,用于将数据输入到工作表中,具有一定的分类。

条目使用来自计数器 i 的值放置在工作表的特定单元格中,并且可以通过使用按钮将其删除到位于同一工作簿上的“存档”工作表中。这会在列表中留下一个免费的条目。即

Job 1 is entered 
Job 2 is entered
Job 3 is entered 
Job 2 is archived

There now exists a space between job 1 and 3.

我想要做的是创建一个循环,它将检查一个空的单元格范围,并将用户窗体数据放在下一个可用的空单元格中。每 5 个单元格输入一次数据,因此 A5、A10、A15... 等。

我目前的代码如下:

If UserForm1.OptionButton1.Value = True Then
  If Range("A" & (5 * i)).Value = "" Then
    ActiveSheet.Range("A" & (5 * i) & ":" & "O" & (3 + (5 * i))).Select
    With Selection.Interior
      .Color = RGB(239, 231, 121)
    End With

    With Worksheets("Active Jobs")
        .Range("A" & (5 * i)) = UserForm1.TextBox1     'Place job 5 cells apart
        .Range("B" & (5 * i) & ":" & "E" & (3 + (5 * i))).Merge
        .Range("B" & (5 * i)) = UserForm1.TextBox2
        .Range("B" & (5 * i) & ":" & "E" & (3 + (5 * i))).VerticalAlignment = xlTop
        .Range("G" & (5 * i) & ":" & "O" & (3 + (5 * i))).Merge

    Set t = .Range("T" & (5 * i))
    Set btn = .Buttons.Add(t.Left, t.Top, t.Width, t.Height)

      With btn
        .Name = "RemovetoArchive" & i1
        .Caption = "Archive"
        .OnAction = "RemovetoArchive"
      End With

    End With

  i = i + 1

  ElseIf Range("A" & (5 * i)).Value <> "" Then
    For i = 1 To 25
    'I can't figure out how to implement the for loop here.
    Next i
  End If

【问题讨论】:

  • 也许利用End(xlDown) 会有所帮助。将循环替换为Range("A" &amp; (5 * i)).End(xlDown).Offset(1),得到空白单元格输入数据。

标签: vba excel


【解决方案1】:

所以我猜我脑子里放了个屁,放了几天然后回来几乎立刻就解决了。

使用新变量 C 为范围创建一个 While 循环

While Range("A" & (5 * c)).Value <> ""
    c = c + 1
Wend 

每 5 个单元格定位最近的空单元格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2016-07-13
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多