按键精灵 如何用多线程对同一文件进行读写【解决问题后追加100分】 50
比如说对excel电子表格进行读写,需要a线程发现问题,然后向excel里面写入数据;接着b线程读取数据,做出某种回应后,写入数据!因为要随时发现问题和解决问题,所以多线...
比如说对excel电子表格进行读写,需要a线程发现问题,然后向excel里面写入数据;接着b线程读取数据,做出某种回应后,写入数据!因为要随时发现问题和解决问题,所以多线程会一直循环……怎么做才能让程序不至出错!有么有大神吖,追加100分的……
为什么提醒说有人回答了却看不见回答的内容? 展开
为什么提醒说有人回答了却看不见回答的内容? 展开
4个回答
2013-05-16
展开全部
请暂时插入一列辅助列,比如B列,然后对应A1数据的话输入
=VALUE(TEXT(A1,"####-##-##"))-1
然后下拉,将结果的单元格格式设置为日期就可以得到日期格式的结果了,然后将结果复制为“数值”去掉公式就可以了。
如果还是要保留原来的数据格式,输入:
=YEAR(VALUE(TEXT(A1,"####-##-##"))-1)&MONTH(VALUE(TEXT(A1,"####-##-##"))-1)&DAY(VALUE(TEXT(A1,"####-##-##"))-1)
评论|0
2012-11-26 17:38greensky_34|四级
你说的”头一天“是指的”前一天“吗,如果是的话,你可以这样做:
1)用公式分别提取年月日,如在B1中写入=left(A1,4)可以提取年,在C1中写入=right(left(A1,6),2)提取月,在D1中写入=right(A1,2)提取日。
2)组合成日期形式可以在E1中输入:=DATE(year,month, day),也就是=DATE(B1,C1,D1)
3)计算”前一天“,在F1中输入=E1-1。日期可做数学运算。
可以看到,这里的思路是:把文本转换成日期形式,然后对日期做数学运算。
有了这个思路,其实可以写成一个长长的公式:=DATE(left(A1,4),right(left(A1,6),2),right(A1,2))-1
注意:日期的格式一定要相同,年4位,月2位,日2位。如果不是这样的格式就麻烦很多了。不过或许也有办法,也是按以上的思路进行。
=VALUE(TEXT(A1,"####-##-##"))-1
然后下拉,将结果的单元格格式设置为日期就可以得到日期格式的结果了,然后将结果复制为“数值”去掉公式就可以了。
如果还是要保留原来的数据格式,输入:
=YEAR(VALUE(TEXT(A1,"####-##-##"))-1)&MONTH(VALUE(TEXT(A1,"####-##-##"))-1)&DAY(VALUE(TEXT(A1,"####-##-##"))-1)
评论|0
2012-11-26 17:38greensky_34|四级
你说的”头一天“是指的”前一天“吗,如果是的话,你可以这样做:
1)用公式分别提取年月日,如在B1中写入=left(A1,4)可以提取年,在C1中写入=right(left(A1,6),2)提取月,在D1中写入=right(A1,2)提取日。
2)组合成日期形式可以在E1中输入:=DATE(year,month, day),也就是=DATE(B1,C1,D1)
3)计算”前一天“,在F1中输入=E1-1。日期可做数学运算。
可以看到,这里的思路是:把文本转换成日期形式,然后对日期做数学运算。
有了这个思路,其实可以写成一个长长的公式:=DATE(left(A1,4),right(left(A1,6),2),right(A1,2))-1
注意:日期的格式一定要相同,年4位,月2位,日2位。如果不是这样的格式就麻烦很多了。不过或许也有办法,也是按以上的思路进行。
追问
很讨厌复制粘贴……都没看清楚别人问的是啥就胡乱做答!
展开全部
线程ID1 = BeginThread(主脚本)
Delay 500
线程ID2 = BeginThread(监视血)
Sub 主脚本()
Do
'主脚本操作
Loop
End Sub
Sub 监视血()
Do
//
//添加无限判断的表达式
PauseThread 线程ID1//暂停主线程操作
'进入你说的发现问题向excel里面写入数据
//
Text = Plugin.Office.ReadXls(1, 1, 2)
Else
ContinueThread 线程ID1//继续主线程操作
End If
Loop
End Sub
提个思路。看懂后采纳!
Delay 500
线程ID2 = BeginThread(监视血)
Sub 主脚本()
Do
'主脚本操作
Loop
End Sub
Sub 监视血()
Do
//
//添加无限判断的表达式
PauseThread 线程ID1//暂停主线程操作
'进入你说的发现问题向excel里面写入数据
//
Text = Plugin.Office.ReadXls(1, 1, 2)
Else
ContinueThread 线程ID1//继续主线程操作
End If
Loop
End Sub
提个思路。看懂后采纳!
更多追问追答
追问
关键是两个线程都要用到同一个excel文件吖……一个写了读,一个读了再写……如果只有一个线程用excel你这个可行……两个线程同时运行的时候有一个就不知道写到哪里去了……⊙﹏⊙b汗
追答
新手最好少用多线程。。 都写到一个线程里操作。 另一个线程判断错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件管理中对一个文件编辑时一般都是需要第一个编者对文件锁定-编辑-解锁。像是svn之类版本控制软件的,可以多次打开,然后进行智能合并(注意,这种可合并都是非二进制文件,也就是限于txt文件)。如果使用按键精灵对excel进行编辑,建议还是使用第一种方式,在某一线程打开编辑保存后才由其他线程进入,进行串行编辑。
追问
能给个实例吗,嗯嗯,要按键精灵代码……大神……如果管用咱会再加100分滴!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件管理中对一个文件编辑时一般都是需要第一个编者对文件锁定-编辑-解锁。像是svn之类版本控制软件的,可以多次打开,然后进行智能合并(注意,这种可合并都是非二进制文件,也就是限于txt文件)。
追问
能给个实例吗,嗯嗯,要按键精灵代码……大神……如果管用咱会再加100分滴!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |