从 Excel 中的特定列获取制表符分隔的文本

从 Excel 中的特定列获取制表符分隔的文本

我有一个 MS Excel 2013 电子表格,其中列出了一些参加会议的人员,以及他们在不同选项卡中的地址、电话号码等。现在,我被要求为小册子创建一个制表符分隔的与会者列表。有没有办法可以做到这一点,而不必强迫我重新输入/复制粘贴每一行数据?我只需要姓名列。我希望在 MS Publisher 2013 上准备小册子。任何帮助都将不胜感激。

答案1

从 Excel 中的特定列获取制表符分隔的文本

我要求为宣传册创建一个制表符分隔的与会者列表。有没有办法可以做到这一点,而不必强迫我重新输入/复制粘贴每一行数据?我只需要姓名列。

以下是手动快速执行此操作的步骤记事本++如果你正在寻找一种手动方式来轻松完成此操作而无需代码;另外你的问题text也在标记中。

  1. 打开 Excel 电子表格,其中包含您想要从中获取数据值的列(例如名称列)。

  2. 单击该列以突出显示所有值,然后按 Ctrl+ C(或右键单击并选择 Copy)。

  3. 打开 Notepad++ 和一个新的空白文档,然后按 Ctrl+ V(或右键单击并选择 Paste)粘贴刚刚复制的列的值。

  4. 在 Notepad++ 中,粘贴数据值后按 Ctrl+A选择粘贴的所有内容,向上选择Edit选择Line Operations,然后选择Remove Empty Lines (Containing Blank characters)

  5. 在 Notepad++ 中,数据值仍然全部突出显示,向上并选择Edit选择Blank Operations,然后选择Trim Leading and Trailing Space

  6. 在 Notepad++ 中,数据值仍然全部突出显示,按Ctrl+H转到Replace选项卡并输入值,并确保选项被选中,如下所示。按下选项Replace All,这应该会用制表符分隔所有数据值。

  7. 从那里,您可以将新格式化的值保存为新的文本文档,或者根据需要将该格式(制表符分隔)复制并粘贴到其他应用程序等中(如果适用)。

请注意,我确实对此进行了测试并确认它按预期工作,然后立即返回并将其以制表符分隔的形式导入 Excel,并且所有内容似乎都是制表符分隔的并可正确导入。


截屏

在此处输入图片描述

来源: Notepad++ 正则表达式

\n

  • LF 控制字符 0x0A(换行符)。这是 Unix 系统下的常规行尾。

\r

  • CR 控制字符 0x0D(回车符)。这是 DOS/Windows 行尾序列 CR-LF 的一部分,是 Mac 9 及更早版本中的 EOL 字符。OSX 及更高版本使用 \n。

\t

  • TAB 控制字符 0x09(制表符,或硬制表符、水平制表符)。

附加说明

Notepad++还具有Ctrl+ACtrl+J功能,但它不会添加制表符来分隔,而是添加空格。我不确定您的“姓名”列是同时包含姓和名还是只有一个姓名,如果需要,您可以用“空格”分隔,这在您的案例中是可行的。

答案2

我假设你有一些编程知识。这样,给定的名称应该可以解释一切。(所以我不会解释如何代码有效。

为了展示使用 VBA 执行此操作的正确方法(并使其可供其他应用程序使用),您可以使用此脚本:

Alt首先通过+打开 VBA 窗口F11。然后“插入”和“模块”。您可以简单地将代码复制/粘贴到那里

Option Explicit
Sub Put_All_Names_to_Clipboard()
  Dim Name_In_Cell As Variant, Name_List As String
  For Each Name_In_Cell In Selection.Value
    If Len(Name_In_Cell) = 0 Then
      Exit For
    ElseIf Len(Name_List) Then
      Name_List = Name_List & vbTab & Name_In_Cell
    Else
      Name_List = Name_In_Cell
    End If
  Next
  Dim Object_For_Clipboard As Object
  Set Object_For_Clipboard = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
  Object_For_Clipboard.SetText Name_List
  Object_For_Clipboard.PutInClipboard
  Set Object_For_Clipboard = Nothing
End Sub

它现在将把所有选定的呼叫值放在一个制表符分隔的列表(文本字符串)中(它会在第一个空单元格处停止,这样就可以自由选择一整列)。执行宏后,您可以简单地将字符串“粘贴”到您想要的任何位置。但是,我建议直接将其粘贴到发布者文件中的正确位置,这样可以节省 1 个步骤,还可以保持剪贴板干净,以便执行其他任务。

您可以通过将文本光标放在子宏中的某个位置并点击来直接启动宏F5。您还可以分配宏到按钮或者将其添加到工具栏

最后提示:您还可以直接在 MS-Publisher 中创建宏,然后从 excel 文件中“获取”此字符串。但是,如果您觉得 VBA 更好用,您可以稍后再这样做。:)

相关内容