在excel中强制格式化导入的文本文件

在excel中强制格式化导入的文本文件,excel,vba,Excel,Vba,我有一个包含MCQ测验的文本文件。目前,我必须编辑所有带有分隔符(例如选项卡)的测验问题,然后才能将它们导入excel 我需要一种自动方式将导入的文件格式化为以下列: 问题ID、考试类型、年份、主题、问题、答案1、答案2、答案3、答案4、答案5、正确答案、图片 无需先手动编辑文本 下面是我当前导入excel的文本示例 1.政府作为一种统治艺术,是指A.统治社会中的人民b.建立政党C.提供免费教育D.获得社会技能的过程。一个国家的基本特征是a.矿产资源的可用性B.发达的基础设施。C有组织的法律体

我有一个包含MCQ测验的文本文件。目前,我必须编辑所有带有分隔符(例如选项卡)的测验问题,然后才能将它们导入excel

我需要一种自动方式将导入的文件格式化为以下列:

问题ID、考试类型、年份、主题、问题、答案1、答案2、答案3、答案4、答案5、正确答案、图片
无需先手动编辑文本

下面是我当前导入excel的文本示例

1.政府作为一种统治艺术,是指A.统治社会中的人民b.建立政党C.提供免费教育D.获得社会技能的过程。一个国家的基本特征是a.矿产资源的可用性B.发达的基础设施。C有组织的法律体系D.发达的市场。
我想将示例1和2放在上面的列中。我已经把我一直在做的事情拉上拉链,这样你就可以看一看了。我还提供了原始测验数据,以便您了解我试图强制格式化的内容

尝试以下方法:

打开excel文档,点击Alt+F11打开VBA编辑器,插入一个新模块(如果还没有),打开它,然后粘贴以下代码(它们是自定义的用户定义函数,我们稍后将使用)

函数leftDelimiter(ByVal文本作为字符串,ByVal分隔符作为字符串)
变暗位置为整数
将文本设置为字符串
position=InStr(1,文本,分隔符,vbTextCompare)-1
leftText=左(文本,位置)
LEFTDELIMIT=leftText
端函数
函数RightDelimiter(文本,分隔符)
变暗位置为整数
将文本设置为字符串
position=Len(文本)-Len(分隔符)-InStr(1,文本,分隔符,vbTextCompare)+1
rightText=右侧(文本、位置)
rightDifferent=rightText
端函数
函数无错误(文本)
如果是IsError(文本),则
NOERROR=“”
其他的
NOERROR=文本
如果结束
端函数
我猜在这一点上,你测验的所有文本都是A1。继续并用逗号分隔该单元格,就像我前面指定的那样,以使每个问题在其自己的列中。因为我们希望这些问题中的每一个都占据自己的行,所以突出显示第1行中的所有问题,然后复制并粘贴到A2中的special,并选择选项以转换值。现在每个问题都有自己的一行。现在我们要做的是给每个答案选择一个列。我们可以使用之前的自定义函数,它允许您获取自定义分隔符左侧或右侧的所有文本

如果A2的值为

  • 1.政府作为一种统治艺术,是指A.统治社会中的人民b.建立政党C.提供免费教育D.获得社会技能的过程
然后,我们将用以下代码填写其他列:

  • B2:
    =左定界(A2,“A.”
  • C2:
    =NOERROR(正确(修剪(左定界)(右定界(A2,“A.”,“B”)))
  • D2:
    =无错误(正确(修剪(左定界)(右定界(A2,“B.”,“C”)))
  • E2:
    =NOERROR(正确(修剪(左定界)(右定界(A2,“C.”,“D”)))
  • F2:
    =无错误(正确(修剪(左定界)(右定界(A2,“C.”,“D”)))
  • G2:
    =NOERROR(正确(修剪(左定界)(右定界(A2,“D.”,“E”)))

这是对传入数据的格式进行某些假设。如果这不起作用,请向所有人展示excel文件,您可以通过任何在线文件共享主机上传和分发该文件,以便更好地了解哪些特定错误可能会绊倒您

要获得有用的答案,我们需要更多代码/上下文。格式化数据是使其看起来像x而不是y。我不确定我是否理解这两个部分,或者,就这一点而言,你已经尝试过了。您能否提供一个示例,说明您的数据现在是什么样子,以及您希望它最终是什么样子?好的,谢谢,这是我当前导入excel的文本示例。“1.政府作为一种统治艺术,是指A.在社会中统治人民b.建立政党C.提供免费教育D.获得社会技能的过程,2。一个国家的基本特征是a.矿产资源的可用性B.发达的基础设施。C一个有组织的法律体系D.发达的市场。谢谢。唯一的问题是我目前正在手动添加标签(不酷)。哇,谢谢。“但是继续,按照我前面指定的,用逗号分隔单元格,让每个问题都在自己的列中。”??我一直在搜索msg,但找不到它。我记得你说过我应该用分号分隔并另存为CSV文件,那么逗号是怎么来的?高单元格A1,将所有值,转到数据功能区,选择“文本到列”,选择“分隔符”,然后选择您的分隔符(在本例中为逗号)。CSV文件是存储数据的一种非常标准的方式,可供许多不同的应用程序读取。请记住接受任何有助于您和/或投票的答案(尽管我不确定您是否拥有该特权)好的,我已经压缩了我一直在做的事情,这样你就可以看一看,我还包括了原始的测验数据,这样你就可以知道我试图强制格式化的是什么。谢谢你的所有支持。凯尔似乎已经走了。当我刚刚掌握它的时候。