Excel 再次移动到下一列

Excel 再次移动到下一列,excel,vba,Excel,Vba,我已经编写了一个代码,在运行代码的过程中移到下一列,但它不起作用,而不会发生错误 我希望在运行代码时,它应该再次移动到下一列,并重复此操作 例如:我第一次运行代码,它将移动到BD4,第二次将移动到BE4,然后是BF4,然后是BG4,然后是BH4,然后是BI4,依此类推 如果使用此行ActiveCell.Offset(0,1)。选择并选择BC4,它将在运行代码时移动。尝试生成相同的代码,但它将从BC4开始 我将非常感谢你的帮助 Sub Move() With Sheet7.Range("

我已经编写了一个代码,在运行代码的过程中移到下一列,但它不起作用,而不会发生错误

我希望在运行代码时,它应该再次移动到下一列,并重复此操作

例如:我第一次运行代码,它将移动到BD4,第二次将移动到BE4,然后是BF4,然后是BG4,然后是BH4,然后是BI4,依此类推

如果使用此行
ActiveCell.Offset(0,1)。选择
并选择BC4,它将在运行代码时移动。尝试生成相同的代码,但它将从BC4开始

我将非常感谢你的帮助

Sub Move()
With Sheet7.Range("BC4")
.Offset(0, 1).Activate
End With
End Sub
我也写了这篇文章,但没有成功

Sub Move()
Sheet7.Range("BC4").Select
With Selection
.Offset(0, 1).Activate
End With
End Sub
Sub Move()
Dim FirstCell As String
Dim i As Integer
FirstCell = "BC4"
Range(FirstCell).Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value = "" Then
ActiveCell.Offset(0, 1).Select
End If
Loop
End Sub
我也写了这篇文章,但没有成功

Sub Move()
Sheet7.Range("BC4").Select
With Selection
.Offset(0, 1).Activate
End With
End Sub
Sub Move()
Dim FirstCell As String
Dim i As Integer
FirstCell = "BC4"
Range(FirstCell).Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value = "" Then
ActiveCell.Offset(0, 1).Select
End If
Loop
End Sub

编辑:gif帮助

这里需要考虑两个条件:(1)Active CeCEL在导航范围之外,(2)活动单元格已经在导航范围内。

在我看来,最好的办法是定义要导航的单元格。如果在该范围外调用宏,请跳转到该范围内的第一个单元格。否则,请向右移动。请参阅下面的示例代码,并让我知道它是否适用于您:

Sub Move()
    Dim sht As Worksheet
    Dim navigationRange As Range
    
    Set sht = Sheet7
    sht.Select
    
    'This is the range over which you want to navigate
    Set navigationRange = sht.Range("BC4:DD4")
    
    'If you're not already within the navigation range
    'then go to the first cell of the navigation range
    If Intersect(ActiveCell, navigationRange) Is Nothing Then
        navigationRange.Range("a1").Select
        Exit Sub
    End If
    
    ActiveCell.Offset(, 1).Select
End Sub

旧职位

这里有一个简单的向左循环10次的例子。您可以在每次迭代期间更新代码以执行所需的任何操作

Sub Move()
    Dim rng As Range
    
    Set rng = Sheet7.Range("BC4")
    Sheet7.Select
    
    'Mock loop with 10 iterations
    For i = 1 To 10
        Set rng = rng.Offset(, 1)
        rng.Select
        'Do whatever you wanted to do here
    Next i
    
End Sub

编辑:gif帮助

这里需要考虑两个条件:(1)Active CeCEL在导航范围之外,(2)活动单元格已经在导航范围内。

在我看来,最好的办法是定义要导航的单元格。如果在该范围外调用宏,请跳转到该范围内的第一个单元格。否则,请向右移动。请参阅下面的示例代码,并让我知道它是否适用于您:

Sub Move()
    Dim sht As Worksheet
    Dim navigationRange As Range
    
    Set sht = Sheet7
    sht.Select
    
    'This is the range over which you want to navigate
    Set navigationRange = sht.Range("BC4:DD4")
    
    'If you're not already within the navigation range
    'then go to the first cell of the navigation range
    If Intersect(ActiveCell, navigationRange) Is Nothing Then
        navigationRange.Range("a1").Select
        Exit Sub
    End If
    
    ActiveCell.Offset(, 1).Select
End Sub

旧职位

这里有一个简单的向左循环10次的例子。您可以在每次迭代期间更新代码以执行所需的任何操作

Sub Move()
    Dim rng As Range
    
    Set rng = Sheet7.Range("BC4")
    Sheet7.Select
    
    'Mock loop with 10 iterations
    For i = 1 To 10
        Set rng = rng.Offset(, 1)
        rng.Select
        'Do whatever you wanted to do here
    Next i
    
End Sub


代码什么都不做,只是激活了BD4,你希望它做什么?就我所知,它是按照命令做的。不,用我给你的东西替换这条线。我认为这是一个XY问题。我们需要更多的细节来了解你要做的事情。显然,向右移动一个单元格并不是结束,否则只需按向右箭头键即可。因此,为了帮助我们,我们需要了解更多的细节,而不仅仅是你想要什么。它有点太具体了。您是要手动与活动单元格交互,然后再次运行它,还是要在代码中执行某些操作,然后希望循环到下一个单元格。这并没有回答我的问题,所以最后一次。您是要手动与单元格交互,然后运行代码移动到下一个单元格,还是要从BC4开始使用vba执行某些操作,然后移动到下一个单元格并循环,直到某个模糊实例停止?代码什么也不做,它只激活
BD4
,您希望它做什么?就我所知,它是按照命令做的。不,用我给你的东西替换这条线。我认为这是一个XY问题。我们需要更多的细节来了解你要做的事情。显然,向右移动一个单元格并不是结束,否则只需按向右箭头键即可。因此,为了帮助我们,我们需要了解更多的细节,而不仅仅是你想要什么。它有点太具体了。您是要手动与活动单元格交互,然后再次运行它,还是要在代码中执行某些操作,然后希望循环到下一个单元格。这并没有回答我的问题,所以最后一次。您是要手动与单元格交互,然后运行代码移动到下一个单元格,还是要从BC4开始使用vba执行某些操作,然后移动到下一个单元格并循环,直到某个星云实例停止?我得到了您的观点,我在偏移量rng后添加了这行。激活,但仍然不会移动到下一列@basodre@Mento您可以使用
rng。选择
(确保首先激活工作表)。但是,通常情况下,在使用单元格之前不需要选择它。不选择单元格被认为是最佳做法。那么如何移动到下一个单元格,即使更改为rng,它仍然不工作,请选择。它仍然不会移动,但如果我使用thins单行,那么我的代码可以使用ActiveCell.Offset(0,1)。Select@Mento请参阅更新。首先,我确保选择了相关的表格(因为要选择单元格,工作表必须处于活动状态。然后,在设置
rng
变量后,我选择范围。您可以单步查看代码以查看它的发生。我想我无法详细说明我的问题,让我再次分享。我只想,如果我再次按下按钮,代码将选择BD4,按下按钮代码将选择。)ct BE4。我想一个接一个地看下一个单元格。我明白你的意思了。我在偏移量rng后添加了这条线。激活,但它仍然不会移动到下一列@basodre@Mento您可以使用
rng。选择
(确保首先激活工作表)。但是,通常情况下,在使用单元格之前不需要选择它。不选择单元格被认为是最佳做法。然后,如何移动到下一个单元格即使更改为rng,它仍然不工作,请选择。它仍然不移动,但如果我使用较细的单行,则我的代码可以使用ActiveCell。偏移量(0,1).Select@Mento查看更新。首先,我确保选择了相关的工作表(因为要选择单元格,工作表必须处于活动状态。然后,在设置
rng
变量后,我选择范围。您可以单步查看代码以查看它的发生。我想我无法详细说明我的问题,让我再次分享。我只想,如果我再次按下按钮,代码将选择BD4,按下按钮代码将选择。)ct BE4。我想一个接一个地进入下一个牢房。