Vba 在单元格中打印字母,数组循环

Vba 在单元格中打印字母,数组循环,vba,excel,Vba,Excel,我想让第一行的单元格编号为A,B,C 我在这个语句周围有红色的语法,这意味着语法是错误的 代码: 如果我能做到这一点,我希望能够让用户输入一个变量“shift”,该变量对字母应用凯撒式移位,因此X是第一列,而不是a(shift=23)。在VBA中,字符串是一种基本数据类型,它没有任何方法(因此不能这样做:“ABC”.tochararray()) 完成任务的最简单方法是使用常规的来。。。下一步循环和函数Mid: Sub printLetters() Const ALPHABET As St

我想让第一行的单元格编号为A,B,C

我在这个语句周围有红色的语法,这意味着语法是错误的

代码:


如果我能做到这一点,我希望能够让用户输入一个变量“shift”,该变量对字母应用凯撒式移位,因此X是第一列,而不是a(shift=23)。

在VBA中,字符串是一种基本数据类型,它没有任何方法(因此不能这样做:
“ABC”.tochararray()

完成任务的最简单方法是使用常规的
来。。。下一步
循环和函数Mid:

Sub printLetters()
    Const ALPHABET As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Dim i As Integer

    For i = 1 To VBA.Len(ALPHABET)
        Cells(1, i).Value = VBA.Mid(ALPHABET, i, 1)
    Next i

End Sub

为了好玩,这里有一行:

Range("A1:Z1").Value = Split(StrConv("ABCDEFGHIJKLMNOPQRSTUVWXYZ", vbUnicode), vbNullChar)

您可以很容易地为字母表的任何排列重写它。

每个的
语法都是错误的。对于集合\u name
中的每个变量\u name下一个变量\u name,您都需要此
。您忘记了每个
之后的变量。(请参阅)为什么字母表的
Const
而不是
dim
?@Sifu,因为它不应该在这个函数中更改。我喜欢有点长,但总体上更简洁,将使用。
Range("A1:Z1").Value = Split(StrConv("ABCDEFGHIJKLMNOPQRSTUVWXYZ", vbUnicode), vbNullChar)