簡體   English   中英

根據Excel中單個單元格的值創建數組

[英]creating an array from the value of a single cell in excel

我有一個要包含的電子表格:1)一個源單元格,它將具有一個字符串,如D2594D8-8。 您可以看到這是一個十六進制數字的字符串,除了單個破折號外沒有分隔符

2)一組標簽和“目標”單元格,宏將在其中復制源單元格中的每個十六進制數字。

因此,一個例子是:

步驟1:在D1中輸入值:D2594D8-8

步驟2:運行宏

步驟3:單元格的值:C4更新為等於“ D”(源單元格字符串中的第一個字符)D4更新為等於“ 2”(源單元格字符串中的第二個字符)E4更新為等於“ 5” (源單元格字符串中的第三位字符)等。

我目前正在嘗試:

Sub AssignData()

Dim wldData As Variant
UWParray = Array(Range("D1"))

Range("D4").Value = UWParray(0)
Range("D5").Value = UWParray(1)
Range("D6").Value = UWParray(2)
Range("D7").Value = UWParray(3)

End Sub

但這只能讓我知道:“運行時錯誤'9'下標超出范圍

結果:

1 D2594D8-8 2
3
4

6
7

任何幫助,將不勝感激!

提前致謝

您的代碼將整個D1值放入數組的第一個位置,因此當它尋找第二個位置時,它不存在-因此出現“下標超出范圍”錯誤。 下面的代碼有效。

    Sub AssignData()

Dim wldData As Variant
Dim UWParray() As String
Dim i As Integer

ReDim UWParray(Len(Range("D1").Value))

For i = 0 To Len(Range("D1").Value)
    UWParray(i) = Mid(Range("D1").Value, i + 1, 1)
Next

Range("D4").Value = UWParray(0)
Range("D5").Value = UWParray(1)
Range("D6").Value = UWParray(2)
Range("D7").Value = UWParray(3)

End Sub

一個班輪:)

[c4].Resize(1, Len([d1].Value)) = Application.Transpose(Evaluate("=index(mid(D1,ROW(1:" & Len([d1].Value) & "),1),)"))

在此處輸入圖片說明

這應該按照您的要求進行:

Dim my_array() As String
Dim my_String As String
Dim i As Integer

my_String = Range("D1").Value

'Replace "-" with nothing
my_String = Replace(my_String, "-", "")

'Split my string into individual characters and store in array/worksheet
ReDim my_array(Len(my_String) - 1)

For i = 1 To Len(my_String)
    my_array(i - 1) = Mid(my_String, i, 1)
    'Store values in excel sheet starting at C3
    Cells(4, (2 + i)).Value = my_array(i - 1)
Next

實際上,您實際上不需要使用數組將值存儲到工作表的單元格中,但是由於帖子標題,我添加了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM