我遇到了逻辑问题,我认为处理它的唯一方法是检测细胞边界。有没有办法在Excel VBA中执行此操作?
我正在开发一个将Word表格粘贴到Excel工作表中的项目。但是,我发现Word表中的换行符将文本分成合并在一起的单独单元格。 VBA不喜欢合并的单元格,所以我添加了一行代码来取消合并工作表中的所有单元格。结果是来自Word表格的一些单元格已遍布多个单元格,在此处和那里添加新行。我一直在编写VBA代码,使用一行" ID"将分离的单元格合并为一个单元格。 Word文档中的列键作为标记来分割实际表格单元格。
当我粘贴一个嵌套在单元格中的另一个表的表时,它会添加与该内部表对应的数字列和行。我还无法添加图片,所以我会在这里画出来(对不起)。每个单独的行都是一个新行。
"Header1" l "No Header" l "Header2"
"Cell text prior to table" l "(blank)" l
"Table (1,1) text" l "Table (1,2) text" l
Problem text 1 l Problem text 2 l
"Table (2,1) text" l "Table (2,2) text" l
"Cell text after table" l "(blank)" l
编辑:我应该澄清我希望合并的单元格显示
表格之前的单元格文本
表(1,1)内容 表(1,2)内容
表(2,1)内容 表(2,2)内容
表格后的单元格文本
等等...
我无法确定是否"问题文本1"和"问题文本2"最初是(1,1)和(1,2)的一部分由换行符分隔,或者如果它们是表中的整个新行。我能想到的唯一方法是识别单元格边框(因为嵌套表格的格式是从单词转移)并写入一百万个嵌套" if子句"确定细胞需要添加其值的位置。
答案 0 :(得分:0)
我用
做到了If RCon.Offset(columnOffset:=-1).Borders(xlEdgeBottom).LineStyle <> xlNone Then
ElseIf RCon.Offset(columnOffset:=-1).Borders(xlEdgeBottom).LineStyle = xlNone Then
For Each RCon2 In .Range(.Cells(RCon.Offset(1).Row, CCount.Offset(columnOffset:=-1).Column), .Cells(.Cells(Rows.count, CCount.Offset(columnOffset:=-1).Column).End(xlUp).Row, CCount.Offset(columnOffset:=-1).Column))
If RCon2.Borders(xlEdgeBottom).LineStyle <> xlNone Then
If RCon2.Value <> "" And RCon2.Value <> 0 Then
RCon.Offset(columnOffset:=-1).Value = RCon.Offset(columnOffset:=-1).Value & vbNewLine & RCon2.Value
RCon2.ClearContents
End If
Exit For
ElseIf RCon2.Borders(xlEdgeBottom).LineStyle = xlNone And RCon2.Value <> "" And RCon2.Value <> 0 Then
RCon.Offset(columnOffset:=-1).Value = RCon.Offset(columnOffset:=-1).Value & vbNewLine & RCon2.Value
RCon2.ClearContents
End If
Next RCon2
End If