ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1635|回复: 10

[求助] 求助,高手请帮忙

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-14 22:10 | 显示全部楼层 |阅读模式
单位需要把一个试题卷在EXECL转成一道题一行 达到模版题形的效果,由于没有太多规律,本人技术不行,请哪位高手帮忙给看看,先谢过了

样式.rar

28.38 KB, 下载次数: 23

题库

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-14 22:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-4-14 22:54 | 显示全部楼层
没有规律,自求多福吧!先手动操作吧

TA的精华主题

TA的得分主题

发表于 2019-4-14 22:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-4-14 23:13 | 显示全部楼层
=INDEX(试题!A:A,SMALL(IF(ISNUMBER(--LEFT(试题!新建_文本文档,1))=TRUE,ROW(试题!新建_文本文档),62533),ROW(A1)))模板D2单元格,数组

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-14 23:14 | 显示全部楼层
能用组合方法变成有规律的,然后再做成想要的格式吗,我的思路是,把所有单选、多选都变成一行,然后把答案选项ABCDEF分成列,最后把()里面的答案提取出来,这样就成模版上规定的格式了,哪个高手帮忙实现下

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-14 23:18 | 显示全部楼层
痛痛痛痛 发表于 2019-4-14 22:54
没有规律,自求多福吧!先手动操作吧

你好,能否先把单选、多选变成一行,就是一行中是  题目和答案选项 ,然后把风答案选项分列分成A B C D 各一列,最后用FIND函数把答案提取出来,这样就能形成模版想要的样式了,能实现吗

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-14 23:47 | 显示全部楼层
linchuang0413 发表于 2019-4-14 23:13
=INDEX(试题!A:A,SMALL(IF(ISNUMBER(--LEFT(试题!新建_文本文档,1))=TRUE,ROW(试题!新建_文本文档),62533), ...

能否把做好的带公式的附件表上传下,不胜感激!!谢谢了!

TA的精华主题

TA的得分主题

发表于 2019-4-15 00:27 | 显示全部楼层
具体可以看附件,应该比这有更好的公式,其它可以使用数据分列,比这个要快

样式2.rar

43.83 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2019-4-15 01:22 | 显示全部楼层
  1. Sub test()
  2. Dim rg As Range, r As Integer

  3. arr = Array("A", "B", "C", "D", "E", "对", "错")
  4. r = 2
  5. t = 0
  6. start = 0
  7. For i = 1 To 154
  8.     If InStr(1, Sheets(1).Range("a" & i), ".") > 0 And _
  9.     InStr(1, Sheets(1).Range("a" & i), "A.") = False And _
  10.     InStr(1, Sheets(1).Range("a" & i), "B.") = False And _
  11.     InStr(1, Sheets(1).Range("a" & i), "C.") = False And _
  12.     InStr(1, Sheets(1).Range("a" & i), "D.") = False And _
  13.     InStr(1, Sheets(1).Range("a" & i), "E.") = False And _
  14.     InStr(1, Sheets(1).Range("a" & i), "F.") = False Then
  15.         Sheets(2).Range("d" & r) = Sheets(1).Range("a" & i)   '找题目
  16.         
  17.         ss = Sheets(2).Range("d" & r)
  18.         
  19.         If InStr(1, ss, "(") > 0 Then
  20.             ks = InStr(1, ss, "(")
  21.             Else
  22.             ks = 1
  23.         End If
  24.         
  25.         For Each a In arr
  26.             If InStr(ks, ss, a) > 0 Then
  27.                 If start = 0 Then start = InStr(ks, ss, a)
  28.                 t = t + 1
  29.             End If
  30.         Next a
  31.         
  32.         On Error Resume Next
  33.         Sheets(2).Range("e" & r) = Mid(ss, start, t)      '找abcde
  34.         On Error GoTo 0
  35.         t = 0
  36.         start = 0
  37.         
  38.         

  39.         
  40.         r = r + 1
  41.     End If




  42. Next i
  43. End Sub
复制代码


写了半天只能转换题目和ABCDE ,后面太麻烦我也不会弄了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-26 02:58 , Processed in 0.038742 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表