按键精灵脚本制作,文本复制到EXCEL中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按键精灵脚本制作,文本复制到EXCEL中相关的知识,希望对你有一定的参考价值。

在一TXT文本里,有一组数据(数字),如下所示
r98A目标数据B*u3985
89A目标数据B49838

等等一整堆数据,现在需要把目标复制下来并把B更换成C,(ABC是字符串),求按键精灵实现的脚本。本人不会按健精灵的脚本语言,所以无谓给我说思路,直接给出代码吧,不胜感激,100分相送
ABC代表规则数据(所有数据都是英文或数字,直接说了吧,是网页的源文件),比如说其中一条数据是这样
sdjlaakjdfA目标数据Bskajfajl
其中A前面及B后面都是些无规则的数据,找出规则数据A和B之间的目标数据,复制出来(最好加上自动换行换页),复制到另外一个文本,以“目标数据+C”的方式来储存,最好设置A,B,C都可以自己设置
读取一个记事本,然后把数据存到另外一个记事本,就这么简单(但我不会做,只能求助各位大能了)
——————————————————————————
注:我现在不敢奢求复制到EXCEL了(我的EXCEL没有VB编辑器),现在只求能复制到记事本就可以了,记事本。感谢WACS5,但愿你再接再励,做得更好些

好久没上百度了..

首先,说一下我对问题的理解:

原文本:
sdjlaakjdfA目标数据Bskajfajl
sdjlasd332akjdfA目标数据2BskSDasd332ajl
sdjlaakjdfA目标数据3Bssde

想得到的文本:
目标数据
目标数据2
目标数据3

第二,我们可以换一种方式解决这个问题,使用字符串处理将"目标数据"提取出来便可.

第三,也许不是楼主想要的解决之法.

帮你写了一个html+js的小程序。。

将以下内容复制到记事本后,另存为"提取目标数据.html"

<script type=text/javascript>
function fm(s,code)
eval(code);
return s;

f=0;
</script>

<form name="form1">
<textarea name="src" style="width:100%;height:400" onfocus="if(f)this.value='';f=0" >sdjlaakjdfA目标数据Bskajfajl
sdjlasd332akjdfA目标数据2BskSDasd332ajl
sdjlaakjdfA目标数据3Bssde
</textarea>
<textarea name="code" style="width:60%;height:100"" >var re=/A(.*?)B/g;
var t='';
while(re.exec(s)!=null)
t+=(RegExp.$1+'\n');

s=t;
</textarea>
<pre>
</pre>
<input onclick="this.form.src.value=fm(this.form.src.value,this.form.code.value)" type="button" value="执行查找匹配">
</form>

【说明】:
代码中最重要一句是:
var re=/A(.*?)B/g;
这个正则表达式.
使用时将"目标数据"的前缀"A"及后缀"B"修改一下便可。

【注意】:
如果"A","B"中有特殊字符时应进行正则表达式转义。

第四,针对你想添加字符串C的要求.
只要修改这句代码
t+=(RegExp.$1+'\n');
为:
t+=(RegExp.$1+'C\n');

另外,如果你要加前缀D,那么修改为
t+=('D'+RegExp.$1+'C\n');

要是回答的内容有问题,或认为不妥,请发送百度消息给我,消息内容加上本页网址哦。。
参考技术A 新建一个excel文件
打开后,在
A1单元格输入你的A
B1单元格输入你的B
C1单元格输入你的C

然后按ALT+F11
双击左边中部的:"Thisworkbook"
再把百分号行以下的内容复制粘贴进去。(百分号行不用复制)
保存,运行(按F5)即可。 (中间会叫你定位你的文件文件)
返回Excel文件即可以看到相关信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sub process()
Dim FileName As Variant
Dim str
Dim m, posA, posB As Integer
Dim A, B, C As String

FileName = Application.GetOpenFilename(FileFilter:="文本文档(*.txt),*.TXT")
Open FileName For Input As #1
Worksheets("sheet1").Cells.NumberFormatLocal = "@"

m = 2
If FileName = "" Then
Exit Sub
End If

A = Worksheets("sheet1").Cells(1, 1)
B = Worksheets("sheet1").Cells(1, 2)
C = Worksheets("sheet1").Cells(1, 3)
Worksheets("sheet1").Range("a2:IV65535").ClearContents

Do While Not EOF(1)
Line Input #1, str

posA = InStr(str, A)
posB = InStr(str, B)
If posA <> 0 And posB <> 0 Then
Worksheets("sheet1").Cells(m, 1) = Mid(str, posA + Len(A), posB - posA - Len(A)) & C
End If

m = m + 1
Loop

Close #1
End Sub
参考技术B 你的意思是:文本文件里每行为一个部分,比如一行是:r98A目标数据B*u3985.
然后我要把B*u3985变成C*u3985,然后复制出来,输入到excel?
是不是
参考技术C 看不懂你的需求。
原始数据、转换成的数据,举两个例子。
参考技术D 我也没看懂。

请教如何用按键精灵把已复制的文本内容粘贴到excel指定位置,谢谢!!

问题1:
复制的内容如下:1 28 39 12 29 37 13 28 37 14 28 37 15 31 37 16 28 39 17 29 37 18 31 39 1
想像这样保存到excel里

用精灵自带的 office办公文档插件 Call Plugin.Office.WriteXls(1, 1, 2, "内容") 的效果像这样

用Ctrl+c,Ctrl+v的方式不行哦,要批量复制到不同的excel文件里。
问题2:
按键精灵插件 Call Plugin.Office.OpenXls("C:\测试.xls")
路径可以实现变量吗?
文档文件名是规律的数字,比如101,102,103……
想做个加1循环

谢谢了!!
一次性复制下列全部数值---》粘贴到名字为101的excel文件指定位置--》保存---》退出---》一次性复制另一列数值---》粘贴到名字为102的excel文件指定位置--》保存---》退出---》……103……104……105………………

复制,打开,关闭excel文件没问题,就是粘贴过去后格式不是想要的那样,,,

已经用按键精灵自动全部选中复制,不是复制单个的数值,而是一次性全部复制了,在txt里粘贴就是如下效果。

参考技术A 后面的问题不知道.没用过你那个

不过第一个问题复制之后可以用数据分列在解决追问

可以详细点吗?谢谢!

追答

excel 数据选项-分列 固定宽度 然后一直下一步就好了

本回答被提问者采纳

以上是关于按键精灵脚本制作,文本复制到EXCEL中的主要内容,如果未能解决你的问题,请参考以下文章

用按键精灵依次逐条复制Excel内容粘贴到指定位置(类似注册)

使用按键精灵,如何将excel表格中的内容复制到报名软件的框中

按键精灵脚本怎么使用

怎么使用按键精灵将EXCEL表格内的内容逐个复制粘贴到某软件中呢?

按键精灵 从EXCEL固定列中逐行复制内容到另一界面

怎么用按键精灵将EXCEL表A1列内的数字逐个复制粘贴到某网页搜索框搜索