【发布时间】:2018-10-22 18:55:52
【问题描述】:
这是我第一次发帖。
我正在尝试在 Excel 2016 中找到一种方法来清理文件夹列表,以便我只有父文件夹。
我有一个电子表格,其中 A 列是文件夹列表,包括它们的子文件夹。像这样:[fyi - 每行还有其他列,但它们与本示例无关]
\\server\share\root\subfolder1\
\\server\share\root\subfolder1\sub-subfolderA\
\\server\share\root\subfolder1\sub-subfolderB\
\\server\share\root\subfolder1\sub-subfolderC\
\\server\share\root\subfolder2\
\\server\share\root\subfolder2\other-subfolderA\
\\server\share\root\subfolder2\other-subfolderB\
\\server22\share\root\subfolder3\ham_sandwich\
\\server22\share\root\subfolder3\ham_sandwich\yet-another-subfolderA\
\\server22\share\root\subfolder3\and-another-subfolderA\
\\server22\share\root\subfolder3\and-another-subfolderB\
大约有 2500 行包含不同长度的文件夹,我的最终目标是只得到每个“集合”的顶级文件夹。例如:
\\server\share\root\subfolder1\
\\server\share\root\subfolder2\
\\server22\share\root\subfolder3\ham_sandwich\
\\server22\share\root\subfolder3\and-another-subfolderA\
\\server22\share\root\subfolder3\and-another-subfolderB\
我对此的逻辑如下(如果我忽略了任何内容,请纠正我):
See if the string in A1 is contained within the string in A2.
If A2 contains the string, delete row 2.
If it doesn't, move down to compare A2 with A3. [since we know A1 is now the only cell containing that top folder]
Rinse-and-repeat until the last populated row is reached.
我的问题是找出代码。我在网上看到各种关于搜索指定文本的代码 sn-ps,但没有任何使用变量的代码。我最初是在玩弄 IsNumber 和 Search 的公式组合,但它需要固定的文本来搜索,这会随着宏的进行而改变。
有人可以为我指出正确的方向吗?
【问题讨论】:
-
1) 如何确定哪些文件夹是“顶级”文件夹。即为什么是
\\server\share\root\subfolder1` in your results. but not\\server\share\root`?是不是因为它没有在每集的开头列出? -
通过您的伪代码,您将删除
...\subfolder1\sub-subfolderA,然后将..\subfolder1\sub-subfolderB\与..\subfolder\sub-subfolderC\进行比较 -
@cybernetic.nomad - 你有“1)”这意味着会有一个“2)”到来,但这似乎并没有成功......
-
我认为有一种相对快速的方法可以做到这一点,使用带有分隔符的
Text to Columns``......但不能完全到达那里。最后,您是在寻找此类文件夹的列表,还是真的要删除那些不是子文件夹的行?
标签: excel vba search delete-row excel-2016