找回密码  加入

AUTOIT CN

搜索
查看: 268|回复: 12

[AU3基础] [已解决]如何将输入的字符串变成每个字符写一列输入Excel?

[复制链接]
发表于 2019-6-5 20:16:36 | 显示全部楼层 |阅读模式
本帖最后由 study520x 于 2019-6-12 20:03 编辑

学校导入选择题用的 比如说一大串标准答案ABCD
如何变成
A
B
C
D
竖排 每排就写一个字母 写入Excel?

现在一直用手工方法 好麻烦啊 求助各位大神 谢谢

1.查找? 替换  ^&+空格
说明:?为英文问号,一个问号代表一个汉字/英文字母,如输???则每3个字之间加空格

2.Ctrl+F3全部大写

3.粘贴到Excel

4.数据-分列-分隔符号

5.选中行复制,选择性粘贴,勾上转置

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
发表于 2019-6-6 09:08:26 | 显示全部楼层
很简单,加个回车符就可以了
        $x="a"
        $y="b"
        $s1=$x& @cr&$y
        ClipPut($s1)
发表于 2019-6-6 10:18:44 | 显示全部楼层
  1. Local $sSource = 'ABCD'
  2. Local $sSRERe = StringRegExpReplace($sSource, '(?<=\w)', @CRLF)
  3. MsgBox(0, '替换结果', $sSRERe)
复制代码
 楼主| 发表于 2019-6-6 18:06:54 | 显示全部楼层
本帖最后由 study520x 于 2019-6-6 19:14 编辑

@afan @duxing谢谢2 3楼  英语60道选择题 3楼的比较方便
然后我写好了 想弄个gui 可以在框里输入$sSource 按确定按钮然后可以执行下面的操作该怎么做 代码如下

#include <Excel.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Form2", 406, 295, 207, 127)
$Input1 = GUICtrlCreateInput("Input1", 104, 72, 225, 21)
$Button1 = GUICtrlCreateButton("确定", 136, 168, 145, 65)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

#include <MsgBoxConstants.au3>
Local $oExcel = _Excel_Open()
Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\1.xls")
Local $sSource = 'ABCD'
Local $sSRERe = StringRegExpReplace($sSource, '(?<=\w)', @CRLF)
ClipPut ( $sSRERe )
ClipGet ( )
$oExcel.ActiveSheet.Range("F3").PasteSpecial
MsgBox(0, "", "标准答案已复制",1)
$oWorkbook1.Save()
$oExcel.Quit

               


 楼主| 发表于 2019-6-6 21:35:26 | 显示全部楼层
在论坛东抄西抄 作品完成了 求大神帮忙优化一下 那个输入框 每行十个字母就自动换行 最多六行 成品如下

  1. #include <Excel.au3>
  2. #include <ButtonConstants.au3>
  3. #include <EditConstants.au3>
  4. #include <GUIConstantsEx.au3>
  5. #include <WindowsConstants.au3>
  6. #include <MsgBoxConstants.au3>
  7. #Region ### START Koda GUI section ### Form=
  8. $Form2_1 = GUICreate("标准答案导入辅助", 407, 296, 207, 127)
  9. $Input1 = GUICtrlCreateInput("", 48, 32, 305, 128)
  10. $Button1 = GUICtrlCreateButton("确定", 131, 187, 145, 65)
  11. GUISetState(@SW_SHOW)
  12. #EndRegion ### END Koda GUI section ###

  13. While 1
  14.         $nMsg = GUIGetMsg()
  15.         Switch $nMsg
  16.                 Case $GUI_EVENT_CLOSE
  17.                         Exit
  18.                 Case $Button1
  19.                         $r2=GUICtrlRead($Input1)

  20. Local $oExcel = _Excel_Open()
  21. Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\1.xls")
  22. Local $sSource = $r2
  23. Local $sSRERe = StringRegExpReplace($sSource, '(?<=\w)', @CRLF)
  24. ClipPut ( $sSRERe )
  25. ClipGet ( )
  26. $oExcel.ActiveSheet.Range("F3").PasteSpecial
  27. MsgBox(0, "", "标准答案已复制",1)
  28. $oWorkbook1.Save()
  29. $oExcel.Quit
  30.                
  31.         EndSwitch
  32. WEnd
复制代码


 楼主| 发表于 2019-6-7 01:04:34 | 显示全部楼层
看论坛例子抄的最终版 还是不明白为什么这样能换行
  1. #include <Excel.au3>
  2. #include <ButtonConstants.au3>
  3. #include <EditConstants.au3>
  4. #include <GUIConstantsEx.au3>
  5. #include <WindowsConstants.au3>
  6. #include <MsgBoxConstants.au3>
  7. #include <EditConstants.au3>
  8. #include <GUIConstantsEx.au3>
  9. #include <WindowsConstants.au3>
  10. #include <string.au3>
  11. #include <ButtonConstants.au3>
  12. #include <EditConstants.au3>
  13. #include <GUIConstantsEx.au3>
  14. #include <WindowsConstants.au3>
  15. #Region ### START Koda GUI section ### Form=
  16. $Form1_1 = GUICreate("标准答案", 191, 241, 820, 716)
  17. $Edit1 = GUICtrlCreateEdit("", 0, 0, 195, 190, $ES_WANTRETURN)
  18. GUICtrlSetFont(-1, 16, 400, 0, "微软雅黑")
  19. $Button1 = GUICtrlCreateButton("标准答案", 0, 192, 192, 48)
  20. GUICtrlSetFont(-1, 16, 400, 0, "微软雅黑")
  21. GUISetState(@SW_SHOW)
  22. #EndRegion ### END Koda GUI section ###

  23. While 1
  24.         $nMsg = GUIGetMsg()
  25.         Switch $nMsg
  26.                 Case $GUI_EVENT_CLOSE
  27.                         Exit
  28.                 Case $Button1
  29.                         $a = GUICtrlRead($Edit1)
  30.                         $b = StringLen($a)
  31.                         ;For $i = 1 To Round($b / 30)
  32.                                ;If $i = 1 Then
  33.                                        ; $a = _StringInsert($a, @CRLF, $i * 30)
  34.                                ; Else
  35.                                         ;$a = _StringInsert($a, @CRLF, $i * 30 + ($i - 1))
  36.                                 ;EndIf
  37.                        ; Next
  38. Local $oExcel = _Excel_Open()
  39. Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\1.xls")
  40. Local $sSource = $a
  41. Local $sSRERe = StringRegExpReplace($sSource, '(?<=\w)', @CRLF)
  42. ClipPut ( $sSRERe )
  43. ClipGet ( )
  44. $oExcel.ActiveSheet.Range("F3").PasteSpecial
  45. MsgBox(0, "", "标准答案已复制",1)
  46. $oWorkbook1.Save()
  47. $oExcel.Quit
  48.         EndSwitch
  49. WEnd
复制代码


 楼主| 发表于 2019-6-8 00:10:20 | 显示全部楼层
本帖最后由 study520x 于 2019-6-8 00:52 编辑

发现还有个问题 就是每科的答案长度不一样 如何 导入前先删除F3 这个单元格往下列的数据再导入呢?
  1. Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\标准答案.xls")
  2.                         Local $sRange = "F3:F62"
  3. _Excel_RangeDelete($oWorkbook.ActiveSheet, $sRange, $xlShiftUp)
复制代码




这个F3:F62能用什么替代不?

发表于 2019-6-8 18:19:33 | 显示全部楼层
本帖最后由 chzj589 于 2019-6-10 15:38 编辑
study520x 发表于 2019-6-7 01:04
看论坛例子抄的最终版 还是不明白为什么这样能换行
Local $sSRERe = StringRegExpReplace($a, '(?<=\w)', @CRLF)        @CRLF



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
 楼主| 发表于 2019-6-8 18:36:12 | 显示全部楼层
chzj589 发表于 2019-6-8 18:19
[au3]
#include
#include

我的已经做好了 只是不明白换行的原理是啥
发表于 2019-6-8 18:48:27 | 显示全部楼层
study520x 发表于 2019-6-8 18:36
我的已经做好了 只是不明白换行的原理是啥

_Excel_RangeDelete
删除指定工作表中一或多个单元格, 行或列


 楼主| 发表于 2019-6-9 14:13:02 | 显示全部楼层
chzj589 发表于 2019-6-8 18:48
_Excel_RangeDelete
删除指定工作表中一或多个单元格, 行或列

谢谢 不过答非所问
发表于 2019-6-9 22:57:14 | 显示全部楼层
学习,学习,非常感谢
发表于 2019-6-10 00:09:50 | 显示全部楼层
学习,学习,非常感谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2019-6-19 22:08 , Processed in 0.062500 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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