找回密码
 加入
搜索
查看: 7149|回复: 8

[GUI管理] [已解决]求助每秒 復製excel B1 E1格的數據 到 $a1 $a2

  [复制链接]
发表于 2012-2-8 23:14:57 | 显示全部楼层 |阅读模式
本帖最后由 tcpuuu 于 2012-3-6 15:09 编辑

不要用循環語句
底下這個 可以 每秒 抓電腦上時間 寫入  $gu_Label1
要改成 每秒更新$gu_Label1 數值  (這個數值是GUICtrlRead($A1))  是這個GUI窗口 $A1框內的數字
該如何改
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

;变量必须先声明后使用
Opt("MustDeclareVars", 1)

;创建GUI
Global $gu_Form1 = GUICreate("时间日期", 220, 52, -1, -1)
Global $gu_Label1 = GUICtrlCreateLabel("", 0, 16, 220, 17, $SS_CENTER)

;运行主函数
_Clock_Main()
Exit 1

;程序主函数
Func _Clock_Main()
        ;初始化日期、周几、时间值
        _Clock_RefeshClock()

        ;显示GUI
        GUISetState(@SW_SHOW)

        ;每隔一秒刷新日期、周几、时间值
        AdlibRegister("_Clock_RefeshClock", 1000)

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

                EndSwitch
        WEnd
EndFunc   ;==>_Clock_Main

;刷新日期、周几、时间值
Func _Clock_RefeshClock()
        Local $Data = _Clock_Date() ;获取日期
        Local $Time = _Clock_Time() ;获取时间
        Local $Wday = _Clock_Wday() ;获取周几

        ;显示时钟信息
        GUICtrlSetData($gu_Label1, $Data & " " & $Wday & " " & $Time)
EndFunc   ;==>_Clock_RefeshClock

;获取日期
Func _Clock_Date()
        Return @YEAR & "年" & @MON & "月" & @MDAY & "日"
EndFunc   ;==>_Clock_Date

;获取时间
Func _Clock_Time()
        Return @HOUR & ":" & @MIN & ":" & @SEC
EndFunc   ;==>_Clock_Time

;获取周几
Func _Clock_Wday()
        Local $a_Wday
        ;根据@WDAY的值(1~7)获取“星期x”的值
        Switch @WDAY
                Case 1
                        $a_Wday = "星期天"
                Case 2
                        $a_Wday = "星期一"
                Case 3
                        $a_Wday = "星期二"
                Case 4
                        $a_Wday = "星期三"
                Case 5
                        $a_Wday = "星期四"
                Case 6
                        $a_Wday = "星期五"
                Case 7
                        $a_Wday = "星期六"
        EndSwitch
        Return $a_Wday
EndFunc   ;==>_Clock_Wday
====================================================
本來每秒抓1次時間寫入$gu_Label1
改成 每秒抓一次GUICtrlRead($A1) 的數據 寫入$gu_Label1
发表于 2012-2-8 23:55:33 | 显示全部楼层
大哥, 又是你!
难道你不知道本论坛有搜索功能吗?
这类问题, 这几天老有人问!
发表于 2012-2-9 03:07:12 | 显示全部楼层
我在$A1框 輸入 1   過1秒  $gu_Label1 框 變成1
                輸入 2                                ...
tcpuuu 发表于 2012-2-9 02:52



    不错的进步, 恭喜楼主!

但对于窗口程序, 获取窗口消息的长循环应该跟主窗口代码放在一起, 而不是另外建立一个函数.
所以, 你应该把 _Clock_Main 函数去掉...
当然后面的 Exit 1 也是多余的了, 除非你在循环里加入了退出循环的代码.
 楼主| 发表于 2012-2-9 14:32:09 | 显示全部楼层
本帖最后由 tcpuuu 于 2012-2-9 14:36 编辑

拜託 user3000 你可以幫我 改成
拜託大家幫助  謝謝啦
每秒 復製excel B1 E1格的數據 到 $a1  $a2
excel數字1直跳動   $a1  $a2也跟著1直跳動
希望不會有造成重複開啟excel 的問題
#include <Excel.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("MustDeclareVars", 1)
Global $gu_Form1 = GUICreate("EXCEL TEST", 220, 160, -1, -1)
Global $gu_Label1 = GUICtrlCreateLabel("", 0, 16, 220, 17, $SS_CENTER)
Global $A1 = GUICtrlCreateInput  ("",2,38,64,22,0x01)
Global $A2 = GUICtrlCreateInput  ("",80,38,64,22,0x01)      
        
        GUISetState(@SW_SHOW)
        AdlibRegister("aaa",1000)
        Local $nMsg
        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case $GUI_EVENT_CLOSE
                                Exit
                EndSwitch
        WEnd

Func aaa();         
GUICtrlSetData($gu_Label1,GUICtrlRead($A1))
EndFunc   ;aaa

本帖子中包含更多资源

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

×
发表于 2012-2-9 15:03:51 | 显示全部楼层
干嘛不用EXCEL UDF?
 楼主| 发表于 2012-2-9 20:55:35 | 显示全部楼层
本帖最后由 tcpuuu 于 2012-2-9 21:06 编辑

#include <Excel.au3>
#include <GUIConstantsEx.au3>
Global $gu_Form1 = GUICreate("EXCEL TEST", 220, 160, -1, -1)
Global $A1 = GUICtrlCreateInput  ("",2,38,64,22,0x01)
Global $A2 = GUICtrlCreateInput  ("",80,38,64,22,0x01)      

_ExcelBookOpen(@ScriptDir&"\1.xls")
WinSetState("Microsoft Excel - 1.xls","",@SW_MINIMIZE)

Global $oExcel = _ExcelBookAttach("1.xls","FileName")
        GUISetState(@SW_SHOW)
        AdlibRegister("aaa",100)
        Local $nMsg
        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case $GUI_EVENT_CLOSE
                                Exit
                EndSwitch
        WEnd
Func aaa()         
GUICtrlSetData($A1,_ExcelReadCell($oExcel, 2, 1));第2行第1列
GUICtrlSetData($A2,_ExcelReadCell($oExcel, 2, 5));第2列第5行
EndFunc;====aaa

==================================================

IF    1.xls 沒開啟   THEN
_ExcelBookOpen(@ScriptDir&"\1.xls") ;開啟1.xls
WinSetState("Microsoft Excel - 1.xls","",@SW_MINIMIZE) ;開啟之後 最小化
ENDIF

==========================================
以上這段 如何寫?

_ExcelReadCell
_ExcelBookOpen
以上這些 EXCEL函數 幫助 在那裡  都找不到?
发表于 2012-2-9 22:49:37 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复

这个是我以前从论坛上下过的Excel操作示例, 很详细了.

还是那句话, 学习东西要善用论坛搜索.
学习东西, 更需要有耐心和毅力!

本帖子中包含更多资源

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

×
发表于 2012-3-4 10:43:13 | 显示全部楼层
哦了个K看看
发表于 2012-12-1 11:19:23 | 显示全部楼层
學習學習  正在找問題的解決方法
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-24 01:58 , Processed in 0.281941 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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