[英]How to increment active cell in excel vba 4 steps?
我有一個將數據輸入到工作表中的代碼。 因此,一旦輸入了數據,便會重置表格並可以輸入新的數據項。 但是,這種新的數據項應該以每次位置發生變化的方式進行處理。 如下圖所示,當我使用表格輸入數據時,它將從B1
填充到D4
。 現在,我需要為下一個條目選擇的單元格是F1
。 也就是說,必須從F1
到H4
填充下一組數據。
我嘗試了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.