首页 > 解决方案 > 更正宏以选择每第 n 列而不是行

问题描述

请帮助编辑此代码以处理列而不是行。我尝试在 VBA“行”->“列”中进行搜索和替换,但代码只选择第一列。下面是原始代码。谢谢

Sub EveryOtherRow()
Dim rng As Range
Dim InputRng As Range
Dim OutRng As Range
Dim xInterval As Integer
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
xInterval = Application.InputBox("Enter row interval", xTitleId, Type:=1)
For i = 1 To InputRng.Rows.Count Step xInterval + 1
Set rng = InputRng.Cells(i, 1)
If OutRng Is Nothing Then
    Set OutRng = rng
Else
    Set OutRng = Application.Union(OutRng, rng)
End If
Next
OutRng.EntireRow.Select
End Sub

标签: excelvba

解决方案


尝试这个:

Sub EveryOtherColumn()
Dim rng As Range
Dim InputRng As Range
Dim OutRng As Range
Dim xInterval As Long, i As Long
Dim xTitleId As String
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
xInterval = Application.InputBox("Enter row interval", xTitleId, Type:=1)
For i = 1 To InputRng.Columns.Count Step xInterval + 1
Set rng = InputRng.Cells(1, i)
If OutRng Is Nothing Then
    Set OutRng = rng
Else
    Set OutRng = Application.Union(OutRng, rng)
End If
Next
OutRng.EntireRow.Select
End Sub

推荐阅读