Aasy翻转一个列代码

问题描述 投票:0回答:1

有人可以解释一下下面的VBA代码吗?

我对VBA编码很新,所以每当我在工作中遇到一些我认为可以更有效或更快地完成工作的东西时,我会在互联网上搜索VBA代码并根据我的需要调整它们。这在大多数情况下都能很好地工作。然而,我还希望能够从头开始自己编写它们。

编辑:

所以这次我很难理解下面这段简单的编码。我试图通过将代码更改为仅适用于1列中存在的范围来获得洞察力,这意味着更改for语句并删除Ubound(arr,2)但是我遇到了问题。如果我只在单列范围内工作,有人可以解释一下代码(公式)应该是什么样的吗?

Sub FlipColumns()

Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next

xTitleId = "ExcelTool"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address,Type:=8)
Arr = WorkRng.Formula
For j = 1 To UBound(Arr, 2)
    k = UBound(Arr, 1)
    For i = 1 To UBound(Arr, 1) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(k, j)
        Arr(k, j) = xTemp
        k = k - 1
      Next
Next
WorkRng.Formula = Arr
End Sub
excel vba
1个回答
1
投票

如果您希望确保用户只处理单个列,您可以在选择多列范围时添加Exit Sub,例如:

'...
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address,Type:=8)
If WorkRng.Columns.Count > 1 Then
    MsgBox "Sorry, only a single column should be selected"
    Exit Sub
End If
'...
© www.soinside.com 2019 - 2024. All rights reserved.