所以,在这里编程初学者。
我需要从数据库中提取一些信息。即,我需要对应于给予数据库中每个日志的每个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。
我不希望你有一个万无一失的代码。我只需要一些小费从哪里开始,因为我有点失落。谷歌给我的唯一东西就是那些只计算单元格中单词的人。但这当然不能解决我的问题。
非常感谢你提前
答案 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