按键精灵脚本制作,文本复制到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,但愿你再接再励,做得更好些
最新回答
南故归

2024-10-13 08:05:31

好久没上百度了..

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

原文本:
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');

要是回答的内容有问题,或认为不妥,请发送百度消息给我,消息内容加上本页网址哦。。
病系少女

2024-10-13 12:41:07

新建一个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
杯别

2024-10-13 14:48:09

你的意思是:文本文件里每行为一个部分,比如一行是:r98A目标数据B*u3985.
然后我要把B*u3985变成C*u3985,然后复制出来,输入到excel?
是不是
———过客栈

2024-10-13 13:08:06

看不懂你的需求。
原始数据、转换成的数据,举两个例子。
香草天空

2024-10-13 12:33:30

我也没看懂。