arrays - VBA - 数组中的自定义数字格式 - 特定数组编号后出现错误

标签 arrays excel vba number-formatting

我无法弄清楚为什么我的代码不起作用。我先贴一下:

Dim n As Integer
Dim List_number As String

Dim arr_number(1 To 26) As Integer
    arr_number(1) = "1"
    arr_number(2) = "2"
    arr_number(3) = "3"
    arr_number(4) = "4"
    arr_number(5) = "5"
    arr_number(6) = "6"
    arr_number(7) = "7"
    arr_number(8) = "8"
    arr_number(9) = "9"
    arr_number(10) = "10"
    arr_number(11) = "11"
    arr_number(12) = "12"
    arr_number(13) = "13"
    arr_number(14) = "14"
    arr_number(15) = "15"
    arr_number(16) = "16"
    arr_number(17) = "17"
    arr_number(18) = "18"
    arr_number(19) = "19"
    arr_number(20) = "20"
    arr_number(21) = "21"
    arr_number(22) = "22"
    arr_number(23) = "23"
    arr_number(24) = "24"
    arr_number(25) = "25"
    arr_number(26) = "26"
    n = 1

List_number = "\" & arr_number(n) & "\._1@"

Dim myformat As String
Dim cell As Range

    For Each cell In Selection
        List_number = "\" & arr_number(n) & "\._1@"
        myformat = List_number
        cell.NumberFormat = myformat

        n = n + 1

    Next cell

我试图用这段代码实现的是在 Excel 中创建某种简单的列表,将自定义格式从“cell.value”更改为“myformat.cell.value”。请参阅下面的屏幕:

enter image description here

我的代码是在每个单元格值之前添加数字、点和空格。它对于前 9 个单元格非常有效,但我不知道为什么它在第 10 个单元格处给出错误:“运行时错误 '1004' 无法设置 Range Class 的 NumberFormat 属性”。

奇怪的行为是,当我在数组中输入字母时,它工作得很好,但对于数字,却不起作用:(

我尝试了多种方法(例如尝试将数组中的“10”值拆分为两个单独的部分,例如“1”和“0”),但在几个小时没有成功后,我放弃了。

我有两个问题: 1)有谁知道为什么会出现此错误以及如何绕过它以继续我的宏? 2)有没有什么方法可以为数组赋值,而无需单独键入每一行?对于数字和自定义字符(例如字母或符号)?

预先感谢您的帮助!

最佳答案

试试这个。它使用不同的数字格式:“1”。 @

Sub Kowalski()
    Dim f
    f = [char(34)&row(1:999)&"."&char(34)&" @"]
    Selection.NumberFormat = f
End Sub

这是如何工作的:

Dim f 创建一个变体变量。

下一行使用方括号表示的 Excel 的 Evaluate 方法来创建一个包含 999 个字符串的二维数组,该数组将用作数字格式。此行还将该数组分配给 f

最后一行一次性将单独数字格式的数组分配给工作表上当前的范围选择。

f 数组如下所示:

f(1,1) = "1." @
f(2,1) = "2." @
f(3,1) = "3." @
f(4,1) = "4." @
f(5,1) = "5." @
.
.
.
f(999,1) = "999." @

关于arrays - VBA - 数组中的自定义数字格式 - 特定数组编号后出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60695565/

相关文章:

javascript - 删除数组元素并将它们填充到javascript中的另一个数组中

vba - 运行时错误1004 "Cannot open PivotTable source file"

sql - Access 2010 VBA : If no records match filter, 显示 "No records found"

python - 如何检查 numpy 数组是否包含数字列表?

python - 将另一个 numpy 数组作为数组附加到 numpy 数组,而不是它的元素

arrays - 在 jq 中基于另一个数组获取数组

没有循环的 Excel 到大写 VBA

java - 处理#REF!使用 apache poi 来自 Excel 的单元格

excel - 删除工作表

vba - excel vba复制到空白单元格