如何在VBA語句中使用WEEKNUM函數? - How can I use the ...

文章推薦指數: 80 %
投票人數:10人

I want to write a VBA, to check if WEEKNUM or ISOWEEKNUM equal to the value, then run the rest of ma. 开发者知识库 1秒登录去广告 首页 最新 最火 年薪50万教程 关于 搜索答案 中文简体   相关内容 如何在VBA語句中使用WEEKNUM函數?[英]HowcanIusetheWEEKNUMfunctioninastatementinVBA? 本文翻译自  Ali  查看原文  2016-07-09  10901    excel/ datetime/ excel-formula/ vba/ excel-vba            IwanttowriteaVBA,tocheckifWEEKNUMorISOWEEKNUMequaltothevalue,thenruntherestofmacro.I'vetriedtodothatbutIgotanerrorbecauseofusingTODAYasarg. 我想寫一個VBA,檢查WEEKNUM或ISOWEEKNUM是否等於該值,然后運行其余的宏。

我試過這樣做但是因為使用TODAY作為arg我得到了一個錯誤。

3个解决方案 #1 0   HereisonewaytousebothWEEKNUM()andTODAY()inVBA: 這是在VBA中同時使用WEEKNUM()和TODAY()的一種方法: Subdural() IfEvaluate("=weeknum(today())")=28Then MsgBox28 Else MsgBox"not28" EndIf EndSub #2 5   UsetheWorksheetFunctionobjectorExcelApplicationobjecttocallnativefunctionsintoVBA. 使用WorksheetFunction對象或ExcelApplication對象將本機函數調用到VBA中。

debug.printWorksheetFunction.WeekNum(Date) debug.printapplication.WeekNum(Date) debug.printWorksheetFunction.IsoWeekNum(Date) debug.printapplication.IsoWeekNum(Date) ifapplication.WeekNum(Date)=28then 'itiscurrently28 endif InVBA,theTODAY()functionisreplacedbyDate. 在VBA中,TODAY()函數由Date替換。

#3 3   TheWEEKNUMfunctionconsiderstheweekcontainingJanuary1tobethefirstweekoftheyear.However,thereisaEuropeanstandardthatdefinesthefirstweekastheonewiththemajorityofdays(fourormore)fallinginthenewyear.ThismeansthatforyearsinwhichtherearethreedaysorlessinthefirstweekofJanuary,theWEEKNUMfunctionreturnsweeknumbersthatareincorrectaccordingtotheEuropeanstandard. WEEKNUM函數將包含1月1日的一周視為一年中的第一周。

但是,有一個歐洲標准將第一周定義為在新的一年中大部分時間(四個或更多)下降的那個星期。

這意味着,在1月的第一周有三天或更少的年份,WEEKNUM函數返回根據歐洲標准不正確的周數。

Subtest() DimwnAsInteger wn=Format(Date,"ww") Debug.Printwn EndSub ISOWeeknumUDFis.TheISOweeknumber ISOWeeknumUDF是。

ISO周數 TheISO-criteriaforthefirstweekinayear:-aweekstartsatmonday;somondayisthefirstdayofanyweek-thefirstweekinayearmustcontainatleast4daysinthatyear 一年中第一周的ISO標准:-一周從星期一開始;所以星期一是任何一周的第一天-一年中的第一周必須包含該年至少4天 the1stofjanuaryisinweek1ifit'samonday,tuesday,wednesdayorthursday 如果是星期一,星期二,星期三或星期四,1月1日是在第1周 the4thofjanuaryisalwaysinweek1ofanyyear 1月4日總是在任何一年的第1周 thefirstthursdayinayearisalwaysinweek1一年中的第一個星期四總是在第1周PublicFunctionISOweeknum(ByValv_DateAsDate)AsInteger ISOweeknum=DatePart("ww",v_Date-Weekday(v_Date,2)+4,2,2) EndFunction TotestthisFunctionanothersmallroutinecanbeadded.要測試此函數,可以添加另一個小例程。

Subtest_today_weeknum() DimdtAsDate DimwnoAsInteger 'Inthisexample,thevariablecalledLDatewouldnowcontainthecurrentsystemdate. dt=Date Debug.Printdt wno=ISOweeknum(dt) Debug.Printwno EndSub Fortodayi.e.9-7-2016,Firstonegivesweeknum28whereasISOweeknumfunctiongives27 對於今天,即9-7-2016,第一個給出第28周,而ISO周期函數給出27 For9-7-2015boththeaboveroutineswillgiveweeknum28 對於9-7-2015,上述例程都將給出第28周 Togetthecurrentday(withoutthetimeportion)inacellformulainExcel,use: 要在Excel中的單元格公式中獲取當前日期(沒有時間部分),請使用: =TODAY() IntheVBAprogrammingenvironment,however,thefunctionwouldbeDATE().NowcontainsboththecurrentdateandtimewhileDateandTimeareseperatecommandsforthedateandtime.Italldependsonwhichinformationyouneed. 但是,在VBA編程環境中,函數將是DATE()。

現在包含當前日期和時間,而日期和時間是日期和時間的單獨命令。

這取決於您需要哪些信息。

× 注意! 本站翻译的文章,版权归属于本站,未经许可禁止转摘,转摘请注明本文地址:https://www.itdaan.com/blog/2016/07/09/6f5e1f5b7cb85daa2d58fda07a275688.html。

HowcanIuseaSQLMERGEStatementinVBAaccess? HowcanIuseafunctionpointerinsteadofaswitchstatement? HowtouseANDinIFStatement-VBA HowcanIuseSqltoOrderByThisStatement? HowcanIuseaIf/LoopStatement HowcanIuseanoptionalvaluewithifstatement? HowdoIusecheckboxesinanIF-THENstatementinExcelVBA2010? HowdoIcorrectlyuseanAvgfunctioninanupdatestatement? HowdoIuse“Ifstatement”inechofunctionforPHP Howcaniuseafunctioninmultipledrivers?   粤ICP备14056181号  ©2014-2021ITdaan.com × 收藏本文 添加到收藏夹* 关闭确定



請為這篇文章評分?