VBA Excel:如何读取单元格

时间:2016-03-24 09:21:44

标签: database excel vba excel-vba

所以,在这里编程初学者。

我需要从数据库中提取一些信息。即,我需要对应于给予数据库中每个日志的每个ID的“描述”。 数据库为我提供了我需要的数据: 一个Excel工作表,对于数据库中的每个ID,它使用相应的数据填充第一列中的单元格。

看起来像这样(括号中的东西实际上不是数据的一部分):

(Cell A1:) ID, "Project>Project Name","Date","Duration","Person",(....),"Description","Date Updated", (and so on)

(Cell A2:) 12345, "VBAEXCELSTACKOVERFLOW123","2016-03-24","8hrs","j doe",(...),"finding a way to extract this sentence","2016-03-24 10:05:43", (and so on)

(Cell A3:) 12346, "VBAEXCELSTACKOVERFLOW123","2016-03-24","6hrs","w smith",(...),"i need this one too","2016-03-24 10:06:20", (and so on)

(Cell A4:) (....)

我需要获取每个单元格的描述部分并以某种方式保存它,它仍然对应于ID,以便我可以将其粘贴到另一个电子表格中,其中只有ID。

我认为最大的线索是描述部分始终是单元格中的第n个对象。它始终是:ID,“......”,“......”,“......”,“描述”,“......”。 唯一可变的是括号中的实际内容。

所以我想要做的是创建一个数组或字典(或等效的VBA),它保存对应于“单元格Ax中括号中的第5个条目”的ID。

我不希望你有一个万无一失的代码。我只需要一些小费从哪里开始,因为我有点失落。谷歌给我的唯一东西就是那些只计算单元格中单词的人。但这当然不能解决我的问题。

非常感谢你提前

2 个答案:

答案 0 :(得分:1)

您可以使用split(范围(" a1")。值,","),这将使用逗号作为分隔符为您提供行和数组,然后id将在索引0中,然后您可以确定您想要的内容,从示例中,您添加索引0作为您的键和索引4

类似(未经测试)

dim strSplit() as string
dim dicIDSandDesc as new scripting.dictionary

strSplit=split(range("a1").value,",")
dicIDSandDesc.add strSplit(0),strSplit(4)

答案 1 :(得分:1)

试试这个:

Sub Split_String()
    Dim WordArr() As String
    Dim txt As String
    CurrSheetRowCount = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
    For i = 2 To CurrSheetRowCount
        txt = Cells(i, 1).Value
        WordArr() = Split(txt, ",")
        Cells(i, 2).Value = WordArr(1)     'here 2 is the column number where id will be displyed
        Cells(i, 3).Value = WordArr(6)     'here 3 is the column number where description will be displyed
    Next i
End Sub