将文本粘贴到相邻的单元格

时间:2018-01-26 22:49:19

标签: excel vba excel-vba

我已经获得了一个非常大的电子表格,在数据库中会更好,所以我正在尝试清理电子表格,以便我可以导入它。在整个工作表中,有一些单元格具有一些使用删除线格式化的部分(表示旧的或更改的信息)。我想要删除所有删除,连接它,并将其粘贴到单独的“注释”列中。

我有这个模块(copied from extendoffice.com website)会删除删除线,但是如何更改它以复制文本并将其粘贴到新字段中?

lefToRight

2 个答案:

答案 0 :(得分:1)

您需要更改行xCell.Value = "",因为这是清除单元格。

有几种方法可以满足您的需求:

1)您可以将值堆叠在每个值之间用默认特殊字符分隔的字符串中,然后将该字符串拆分为数组并将数组粘贴到列表中;

或更简单但有点慢的方式

2)将单元格值直接粘贴到单独的工作表中,每次增加一行。 像这样的东西

在任何循环外部的子顶部

Dim listRow  As Long
listRow = 1

然后用

替换xCell.Value = ""
Sheets("stack strike through").Cells(listRow , 1) = xCell.Value 'change sheet name, if you want to use a different column instead of A change 1 from the cells(listRow ,1)
listRow  = listRow  + 1

记住要更改工作表名称

答案 1 :(得分:1)

Sub RemoveNonStrikethroughTextFromSelection()
    Intersect(Selection.Areas(1), ActiveSheet.UsedRange).Select
    Selection.Value(11) = Replace(Replace(Selection.Value(11), "<S>", "["), "</S>", "]")
    Selection.Replace "]*[", "", xlPart
    Selection.Replace "*[", ""
    Selection.Replace "]*", ""
End Sub

此版本包含[ ]的删除线文字,并删除[之前和]之后的文字。

要仅删除删除线文字,请将3 Selection.Replace行替换为:

    Selection.Replace "[*]", "", xlPart