簡體   English   中英

如何在Excel VBA 4步驟中增加活動單元格?

[英]How to increment active cell in excel vba 4 steps?

我有一個將數據輸入到工作表中的代碼。 因此,一旦輸入了數據,便會重置表格並可以輸入新的數據項。 但是,這種新的數據項應該以每次位置發生變化的方式進行處理。 如下圖所示,當我使用表格輸入數據時,它將從B1填充到D4 現在,我需要為下一個條目選擇的單元格是F1 也就是說,必須從F1H4填充下一組數據。

見圖片

我嘗試了ActiveCell.Offset(0, 4).Select但是它把我帶到單元格T2然后下次帶到U2和所有

這是我的代碼:

Private Sub CommandButton1_Click()
Dim p As Long
Dim j As Integer
Dim erow As Long
Dim b As Integer
'erow = Sheet3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
a = number
For p = 2 To number + 1

    Cells(p, 2) = Controls("txtBox" & p - 1).Text
    Cells(p, 3) = Controls("txtBox" & p + number - 1).Text
   Cells(p, 4) = Controls("txtBox" & p + number + number - 1).Text

Next p


'Cells(3, i) = TextBox1.Value
'Cells(4, i) = TextBox2.Value
'Cells(5, i) = TextBox3.Value
'Cells(3, i + 1) = TextBox4.Value
'Cells(3, i + 1) = TextBox4.Value

Call resetForm
ActiveCell.Offset(0, 4).Select

End Sub

文本框是動態創建的

我的表格如下所示:

在此處輸入圖片說明

必須修改什么?

我建議如下所示:
它在第2行中找到最后使用的列,並向右移動2以獲取新數據塊的第一個單元格。 注意,對於第一個數據塊,我們只需要向右移動。

本示例將一些樣本數據添加到下一個空白塊:

Option Explicit

Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Set ws = Sheet3

    Dim LastCol As Long
    LastCol = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column 'get the last used column in row 2

    Dim FirstCellToWrite As Range
    If LastCol = 1 Then
        Set FirstCellToWrite = ws.Cells(2, LastCol + 1) 'first data block is different
    Else
        Set FirstCellToWrite = ws.Cells(2, LastCol + 2)
    End If

    'write example values
    FirstCellToWrite.Value = 1
    FirstCellToWrite.Offset(0, 1).Value = 2
    FirstCellToWrite.Offset(0, 2).Value = 3
    FirstCellToWrite.Offset(1, 0).Value = 4
    FirstCellToWrite.Offset(1, 1).Value = 5
    FirstCellToWrite.Offset(1, 2).Value = 6
    FirstCellToWrite.Offset(2, 0).Value = 7
    FirstCellToWrite.Offset(2, 1).Value = 8
    FirstCellToWrite.Offset(2, 2).Value = 9
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM