Excel Aasy翻转列代码

Excel Aasy翻转列代码,excel,vba,Excel,Vba,有人能给我解释一下下面的VBA代码吗 我对VBA编码相当陌生,所以每当我在日常工作中遇到一些我觉得可以更有效或更快地完成的事情时,我都会在互联网上搜索VBA代码,并根据自己的需要进行调整。这在大多数情况下都相当有效。然而,随着时间的推移,我也希望自己能够从头开始写 编辑: 所以这次我很难理解下面的简单代码。我试图通过将代码更改为仅适用于1列中存在的范围来获得洞察力,这意味着更改for语句并删除Ubound(arr,2),但我被卡住了。如果我只在单列范围内工作,有人能解释一下代码(公式)应该是什么

有人能给我解释一下下面的VBA代码吗

我对VBA编码相当陌生,所以每当我在日常工作中遇到一些我觉得可以更有效或更快地完成的事情时,我都会在互联网上搜索VBA代码,并根据自己的需要进行调整。这在大多数情况下都相当有效。然而,随着时间的推移,我也希望自己能够从头开始写

编辑:

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


如果您希望确保用户只处理单个列,如果他们选择多列范围,您可以添加一个退出子项,例如:

'...
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
'...

它翻转一列(或多列)公式,因此,如果所选范围为A2:A20,则A2将以最初在A20中的公式结束,A3将以最初在A19中的公式结束。。。A20将以A2中最初的公式结束。(但是如果你每次看到新的东西都要找人解释,那么你仍然很难理解代码——你需要学会看代码,研究你不懂的地方。)注意:还有一个解释,说明代码的作用。谢谢你的回答!我知道这不是最好的方法,我也知道它的作用,但我希望我能找到一种更简单的方法来了解实际的公式,从“for J=1 to Ubound()以next结尾。”开始。因为这个公式也适用于多个选定的列(Ubound(arr,2))所以我想我会修改代码,使其仅在选择单个列范围时有效。但是被困在那里;)提供代码中每个语句中使用的每个函数的教程对于堆栈溢出来说过于宽泛。这就是为什么。(例如,看看UBound做了什么。)好吧,我想我们是误会了,哈哈。我知道这不是解释Ubound的地方(顺便说一句,我已经知道了)。我将重新表述这个问题;)
'...
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
'...