[英]VBA Excel: How to read certain parts of variable length in a cell
因此,这里是编程初学者。
我需要从数据库中提取一些信息。 即,我需要与给数据库中每个日志的每个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。
我不希望您收到万无一失的代码。 我只是需要一些从哪里开始的提示,因为我有点迷路。 谷歌给我的唯一一件事就是那些只计算一个单元格中单词的人。 但这当然不能解决我的问题。
提前谢谢你
您可以使用split(range(“ a1”)。value,“,”),这将使用逗号作为定界符为您提供行数组,然后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)
尝试这个:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.