《三角洲特种部队7》中的秘技代码

时间:2019-05-15 02:35:47下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《《三角洲特种部队7》中的秘技代码》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《《三角洲特种部队7》中的秘技代码》。

第一篇:《三角洲特种部队7》中的秘技代码

《三角洲特种部队7》中的秘技代码

导读:相信很多玩家在执行任务中,经常会遇到突然用完枪械弹药,从而导致任务失败或者是被敌人围攻,为此而感到烦恼,不过,接下来给大家一个好办法,(游戏中的秘技代码)可以让你

相信很多玩家在执行任务中,经常会遇到突然用完枪械弹药,从而导致任务失败或者是被敌人围攻,为此而感到烦恼,不过,接下来给大家一个好办法,(游戏中的秘技代码)可以让你在游戏中充分发挥各种枪械特性以及各种招数。

首先进入游戏,然后直接在游戏过程中按“~”键,这时出现代码输入窗口,然后正确的输入以下秘技代码,便可以实现,弹药无限、弹药全满等等。秘技代码: fly_down:向下飞 center_view:视角居中 fly_up:向上飞 toggle_item:切换队伍 look_up_abs:向上看 look_dn_abs:向下看 turn_left_abs:向左转 turn_right_abs:向右转

drury:弹药全满 kariya:弹药无限 roy:无敌模式 corbet:隐形 domi:炮火攻击 PuntCRCPunt CRC PuntLogPunt Log scopescale:瞄准镜调校

PuntPunt BozoBozo tracers:路径 netdelay:网络延迟 talkred:红方交谈 talkblue:蓝方交谈 resetgames:重新开始游戏 Ban:禁令

LastGame:最后的游戏 Verbose:冗长 savescores:保存分数 dualcpu:双CPU GimmeGimme exit:退出任务 quit:退出游戏 sky:取消天空渲染

flipmouse:翻转鼠标 hudcolor:改变提示信息颜色 restart:重新开始任务 gamma:对比度 saturation:饱和度 mousescale:鼠标精度 huddetailHud Detal

第二篇:《特种部队2》影评:视觉盛宴中感受美国式的幽默与感动

小时代2青木时代

http://qmsddy.com/

lll

《特种部队2》影评:视觉盛宴中感受美国式的幽默与感动

好莱坞动作大片故事情节大多相同,没有太多悬念,但每当有好莱坞大片出现在影院,仍有众多影迷为之买单,何故?因为它总能带给我们一种视觉震撼,让我们想象得以延伸,贯穿影片所体现的幽默、勇敢、正义的精神能量感染了一批又一批的观众。美式大片总是着眼于全球、全世界、甚至是全宇宙。

尽管,其中不少影迷朋友评价该影片比起第一部相差甚远,但是走进影院里三分之二的座位或者更多已经坐满,能看出影片在观众心中的热度。影片是3D 模式,效果还不错。其中的一段悬崖峭壁上的打斗场面甚为精彩,从电影上,能看到美国技术的先进,电影技术的先进,是美国科技先进的缩影。

作为一部科幻动作大片来说,科幻色彩确实没有达到作为影迷的我的预期效果,不像第一部中 有着摧毁埃菲尔铁塔惊人威力的纳米虫,速度与灵活性结合的装甲战衣,沙漠中如蝰蛇般穿梭的潜艇,雪地上闪电般疾驰的战车和激光、脉冲、电磁等现代化武器;相比较,全面反击中带电子眼的遥控子弹,撒旦脸上的纳米面膜,萤火虫的炸弹和可以解体的摩托车实在没有什么科幻感觉。即便是最后出现的摧毁伦敦的大钨棒,在视觉上营造了如《2012》般的摧毁力,可是其物理原理倒是让我困惑不已,是不是纯物理的武器真的能达到这神一般的效果。

冷兵器在科幻片中与先进的智能武器相结合,近年来这种影片也很多,不过蛇眼与金克斯在活捉白幽灵时的巅峰忍者战还是让我眼前一

小时代2青木时代

http://qmsddy.com/

lll

亮,虽然打斗动作并不花哨,单就效果和震撼力来说可以说是经典之作。不少影迷评论巨石强森又是出来卖廉价肌肉的,不过我想说,作为动作片来讲,不就需要这么一个大块头来充当热血男儿的角色么,而道恩在影片中的表现恰恰也是该片所需的,也只有他才配得上最后装甲车战中激烈的对决场面。

全面反击作为一部典型的美国式的科幻动作片,其中穿插的幽默与感动是我最喜欢的,喜剧与感动元素并不是此类影片的看点,但却是构成一部好电影中不可或缺的元素,如《谍中谍4》里男2号的“下次换我来勾引阔佬”,《复仇者联盟》中浩克不等洛基说完就一通猛摔,都让观众在欣赏影片的同时感受到了美国式幽默那种简单明了,却又给人留下了深刻印象的轻松一笑;本片中也是如此,巅峰忍者对决中,追逐蛇眼和金克斯的红衣忍者从高处快速滑下时的连环相撞,确实达到了这个效果,给激烈的战斗带来了一丝轻松。

再就是美国式的感动了,话不用多,一句就好,足以催人泪下。影片中先是女一号阿德琳妮说想在自己升职后让同为军人的父亲对她敬礼,而父亲却先走了一步,后是老布在给琳妮颁发奖章时说的“你的父亲会为你骄傲的,我是你父亲的战友”,然后献上一个意味深长的军礼,同时也为这部刺激铁血的影片划上了柔情的句号。总体来说,《特种部队2:全面反击》给我的感觉是一部视觉上的盛宴和感受美国式幽默与感动的好作品,尽管其中不乏不如人意之处,但整部电影仍令我震撼。在称赞的同时,我也为中国还没有此类科幻大作表示遗憾,真心的希望我国的导演在拍腻了历史题材的中国式大

小时代2青木时代

http://qmsddy.com/

lll

片后,能给广大科幻影迷一个欣赏本土科幻大作的机会。影评人:SilenceGod

以下内容为繁体版

好萊塢動作大片故事情節大多相同,沒有太多懸念,但每當有好萊塢大片出現在影院,仍有眾多影迷為之買單,何故?因為它總能帶給我們一種視覺震撼,讓我們想象得以延伸,貫穿影片所體現的幽默、勇敢、正義的精神能量感染瞭一批又一批的觀眾。美式大片總是著眼於全球、全世界、甚至是全宇宙。

盡管,其中不少影迷朋友評價該影片比起第一部相差甚遠,但是走進影院裡三分之二的座位或者更多已經坐滿,能看出影片在觀眾心中的熱度。影片是3D 模式,效果還不錯。其中的一段懸崖峭壁上的打鬥場面甚為精彩,從電影上,能看到美國技術的先進,電影技術的先進,是美國科技先進的縮影。

作為一部科幻動作大片來說,科幻色彩確實沒有達到作為影迷的我的預期效果,不像第一部中 有著摧毀埃菲爾鐵塔驚人威力的納米蟲,速度與靈活性結合的裝甲戰衣,沙漠中如蝰蛇般穿梭的潛艇,雪地上閃電般疾馳的戰車和激光、脈沖、電磁等現代化武器;相比較,全面反擊中帶電子眼的遙控子彈,撒旦臉上的納米面膜,螢火蟲的炸彈和可以解體的摩托車實在沒有什麼科幻感覺。即便是最後出現的摧毀倫敦的大鎢棒,在視覺上營造瞭如《2012》般的摧毀力,可是其物理原理倒是讓我困惑不已,是不是純物理的武器真的能達到這神一般的效果。

小时代2青木时代

http://qmsddy.com/

lll

冷兵器在科幻片中與先進的智能武器相結合,近年來這種影片也很多,不過蛇眼與金克斯在活捉白幽靈時的巔峰忍者戰還是讓我眼前一亮,雖然打鬥動作並不花哨,單就效果和震撼力來說可以說是經典之作。不少影迷評論巨石強森又是出來賣廉價肌肉的,不過我想說,作為動作片來講,不就需要這麼一個大塊頭來充當熱血男兒的角色麼,而道恩在影片中的表現恰恰也是該片所需的,也隻有他才配得上最後裝甲車戰中激烈的對決場面。

全面反擊作為一部典型的美國式的科幻動作片,其中穿插的幽默與感動是我最喜歡的,喜劇與感動元素並不是此類影片的看點,但卻是構成一部好電影中不可或缺的元素,如《諜中諜4》裡男2號的“下次換我來勾引闊佬”,《復仇者聯盟》中浩克不等洛基說完就一通猛摔,都讓觀眾在欣賞影片的同時感受到瞭美國式幽默那種簡單明瞭,卻又給人留下瞭深刻印象的輕松一笑;本片中也是如此,巔峰忍者對決中,追逐蛇眼和金克斯的紅衣忍者從高處快速滑下時的連環相撞,確實達到瞭這個效果,給激烈的戰鬥帶來瞭一絲輕松。

再就是美國式的感動瞭,話不用多,一句就好,足以催人淚下。影片中先是女一號阿德琳妮說想在自己升職後讓同為軍人的父親對她敬禮,而父親卻先走瞭一步,後是老佈在給琳妮頒發獎章時說的“你的父親會為你驕傲的,我是你父親的戰友”,然後獻上一個意味深長的軍禮,同時也為這部刺激鐵血的影片劃上瞭柔情的句號。總體來說,《特種部隊2:全面反擊》給我的感覺是一部視覺上的盛宴和感受美國式幽默與感動的好作品,盡管其中不乏不如人意之處,小时代2青木时代

http://qmsddy.com/

lll

但整部電影仍令我震撼。在稱贊的同時,我也為中國還沒有此類科幻大作表示遺憾,真心的希望我國的導演在拍膩瞭歷史題材的中國式大片後,能給廣大科幻影迷一個欣賞本土科幻大作的機會。影評人:SilenceGod

《太极》影评:娱乐功夫片也有世界观

本文摘选自纽约时报中文网:

虽然是系列娱乐功夫片,电影《太极》依然颇具现实意味——风雨飘摇的帝国,面对内忧外患,国人如何自救自强,底层人如何奋斗向上,以及整个国家要往何处去,这些都可以在电影中窥见;而片方高调打出的“从白痴到大师”高调宣传语,迎合了中国大众文化中的“屌丝”的风行——这是一种社会底层自嘲的称呼,“屌丝”对拜金主义和成功学既无奈又渴望,这种渴望成功又囿于现实的心态几乎成了中国的“国民心态”。

2012年9月27日,由华谊兄弟公司的陈国富监制、冯德伦导演的功夫电影《太极1:从零开始》结束一年零四个月的拍摄和后制,在中国内地正式上映,虽然遭遇史上最激烈“国庆档”混战,但凭借国产电影少见的游戏化外观与重金打造的炫目视效,影片上映一个月,票房收入约1.5亿元人民币;11月1日,系列续作《太极2:英雄崛起》接棒上映,制作水准、品相观感乃至观众口碑,超过首集。至此,“两极”连缀,电影《太极》的完整面貌浮出水面。

《太极》集合了奥斯卡最佳美术设计叶锦添和香港金牌武术指导洪

小时代2青木时代

http://qmsddy.com/

lll

金宝,是部“混血功夫片”,走的不是《卧虎藏龙》那种历史氛围写实、解构侠义神话的路数,也非徐克的《黄飞鸿》、元奎的《方世玉》那种传统中华英雄拯救世界的“威亚功夫教学片”,而是企图另辟蹊径,在影片多种类型趣味混搭、游戏化的不羁外表之下,有一颗讽喻历史、映照现实的内核。

二十多年前,完成处女座《推手》的导演李安,原计划拍摄的第二部影片并非后来的《喜宴》,而是他最崇敬的清末武侠小说大家宫白羽的代表作《偷拳》。而《偷拳》的主人公,不是别人,正是电影《太极》的男主角——杨露禅。

小说《偷拳》与电影《太极》均取材历史人物、太极宗师杨露禅早年求艺的真实经历。历史上的杨露禅生活在清中末叶,身处两次西方工业革命之间,目睹清帝国遭遇他国入侵、一败涂地由盛转衰的命运,“西方”就此成为国人深深恐惧又极度佩服的强大异己力量。电影《太极》由此切入,讲述了杨露禅学拳自救的故事,并最终扩容为国人习新图存的神州传奇。

《太极》很难归类,可以说是各种类型片的杂烩:主人公为了自救,必须百折不挠习武强身(励志);但学功夫不够,还要泡师妹(爱情);泡师妹不够,还要打洋人(爱国);打洋人不过瘾,还要反抗强拆(“写实”);而为了抗拆迁,更要过关斩将,终极比武,成为一代宗师(武侠)。这种类型混搭的手法,让武侠/功夫这类古旧的中国电影类型,花样翻新趣味大增。

电影的视觉十分引人瞩目。将火车、电灯、英语、洋服、留声机等

小时代2青木时代

http://qmsddy.com/

lll

西方的舶来品,同长袍、马褂、功夫、中医、族规等传统图景杂糅并置,除却还原西风东渐华洋杂处的时代氛围,更大胆借鉴“蒸汽朋克”文化的幻想和混搭特色,进行一番天马行空的视觉呈现。看着影片中那明显不合史实的庞然大物般的拆房机器“特洛伊”、展翅翱翔俯冲投弹的载人飞行器“天威翼”,对中国观众而言,不啻为一次大幅度解放想象力的刺激观影体验。

电影暗合了当下青年文化的“屌丝逆袭”与“游戏人生”风潮,也在一定程度上解构着以往以“高富帅”为主角的的传统武侠神话。看着武术运动员袁晓超饰演的底层盲流杨露禅,通过艰苦努力,不仅习得绝世武功,拯救苍生,更抱得美人归,成为事业爱情双丰收的“成功人士”,这在同样拥有“屌丝”心态且不满自身现状的大部分年轻观众看来,这简直就是“中国梦”啊。

香港导演、台湾编剧、香港武指、内地新人、三地明星、国际幕后团队、超越文化地域性的题材,在华谊这座内地最大民营电影公司的舞台上,曾任美国哥伦比亚(亚洲)制作总监的陈国富,凭借开阔的国际视野和扎实的电影修养,整合各方资源,进行了一次虽不完美却激动人心的中国电影实验,用《太极》为我们展示了未来“新华语电影”某种可能性。跟当年陈国富拍惊悚大片《双瞳》非要把FBI到台湾侦破连环杀人案的俗套故事,浸上台湾社会信仰失落、迷信盛行的本土底色一样,他原创发起的项目《太极》,在娱乐化的外表之下,同样强调了对话现实的声部。

也许是首集过于游戏化、碎片化的呈现方式有些喧宾夺主,第二集

小时代2青木时代

http://qmsddy.com/

lll

形式更加简朴,线索也更单一。杨露禅学拳的戏份,在续集中降级为众多线索中草灰蛇线的一条,陈家沟人如何“反抗强拆”,力争生存,成为主要线索。通过陈长兴(梁家辉饰演)与陈栽秧(冯绍峰饰演)这对冤家父子的父子情怨,巧妙转换为传统与现代、封闭与开放、狭隘与包容之间的矛盾。

在这里,陈家沟成为彼时中国的缩影:面对外敌入侵,中国人要想生存下去,除了一身蛮力、不畏强暴外,是不是也需要少一份妄自尊大,多一份清醒自省?少一点抱残守缺,多一些开放包容?至此,封建家长陈长兴与从小沉溺于“奇技淫巧”的儿子陈栽秧的矛盾浮出水面,一方面这种矛盾继续为影片表层故事服务——陈栽秧制造各种恐慌,试图阻止杨露禅学拳,并赶走他;另一方面,陈长兴父子从多年对抗到狱中和解的过程,以感性的方式,传递了既珍视传统又包容新事物的理性态度。

有趣的是,无论是小说《偷拳》还是电影《太极》,杨露禅的师傅都被塑造成了一个不囿门户之见、敢于接纳新人新事的可敬长者形象(陈长兴既威严又搞怪,面对敌人巨炮轰炸时异常镇静的胆识和气度让人折服),这也许正体现了中国富有智识的知识分子既尊重传统,又不陷入思古幽情的囹圄,对于现代性有包容之心。

影片后半程,陈长兴嘱托杨露禅夫妇上京求助惇亲王,希望通过后者肃清吏治阻止方子敬拆迁,保全陈家沟。这是一个“改良派”的信号——传统的以武犯禁、玉石俱焚是民族主义式的“侠”;迂回作战,借助上层的努力曲线救国,何尝不是“侠”的另一种体现方式。影片

小时代2青木时代

http://qmsddy.com/

lll

结尾,众人返回家乡,欣喜地发现,铁路绕道,家园得保。至此,西方和东方、传统与现代、权势与草根、国家与个人的矛盾,在这里得到了一个不无虚幻却又美好的乌托邦式的调和。(影评人:胡不鬼)

以下内容为繁体版 本文摘選自紐約時報中文網:

雖然是系列娛樂功夫片,電影《太極》依然頗具現實意味——風雨飄搖的帝國,面對內憂外患,國人如何自救自強,底層人如何奮鬥向上,以及整個國傢要往何處去,這些都可以在電影中窺見;而片方高調打出的“從白癡到大師”高調宣傳語,迎合瞭中國大眾文化中的“屌絲”的風行——這是一種社會底層自嘲的稱呼,“屌絲”對拜金主義和成功學既無奈又渴望,這種渴望成功又囿於現實的心態幾乎成瞭中國的“國民心態”。

2012年9月27日,由華誼兄弟公司的陳國富監制、馮德倫導演的功夫電影《太極1:從零開始》結束一年零四個月的拍攝和後制,在中國內地正式上映,雖然遭遇史上最激烈“國慶檔”混戰,但憑借國產電影少見的遊戲化外觀與重金打造的炫目視效,影片上映一個月,票房收入約1.5億元人民幣;11月1日,系列續作《太極2:英雄崛起》接棒上映,制作水準、品相觀感乃至觀眾口碑,超過首集。至此,“兩極”連綴,電影《太極》的完整面貌浮出水面。

《太極》集合瞭奧斯卡最佳美術設計葉錦添和香港金牌武術指導洪金寶,是部“混血功夫片”,走的不是《臥虎藏龍》那種歷史氛圍寫實、解構俠義神話的路數,也非徐克的《黃飛鴻》、元奎的《方世玉》

小时代2青木时代

http://qmsddy.com/

lll

那種傳統中華英雄拯救世界的“威亞功夫教學片”,而是企圖另辟蹊徑,在影片多種類型趣味混搭、遊戲化的不羈外表之下,有一顆諷喻歷史、映照現實的內核。

二十多年前,完成處女座《推手》的導演李安,原計劃拍攝的第二部影片並非後來的《喜宴》,而是他最崇敬的清末武俠小說大傢宮白羽的代表作《偷拳》。而《偷拳》的主人公,不是別人,正是電影《太極》的男主角——楊露禪。

小說《偷拳》與電影《太極》均取材歷史人物、太極宗師楊露禪早年求藝的真實經歷。歷史上的楊露禪生活在清中末葉,身處兩次西方工業革命之間,目睹清帝國遭遇他國入侵、一敗塗地由盛轉衰的命運,“西方”就此成為國人深深恐懼又極度佩服的強大異己力量。電影《太極》由此切入,講述瞭楊露禪學拳自救的故事,並最終擴容為國人習新圖存的神州傳奇。

《太極》很難歸類,可以說是各種類型片的雜燴:主人公為瞭自救,必須百折不撓習武強身(勵志);但學功夫不夠,還要泡師妹(愛情);泡師妹不夠,還要打洋人(愛國);打洋人不過癮,還要反抗強拆(“寫實”);而為瞭抗拆遷,更要過關斬將,終極比武,成為一代宗師(武俠)。這種類型混搭的手法,讓武俠/功夫這類古舊的中國電影類型,花樣翻新趣味大增。

電影的視覺十分引人矚目。將火車、電燈、英語、洋服、留聲機等西方的舶來品,同長袍、馬褂、功夫、中醫、族規等傳統圖景雜糅並置,除卻還原西風東漸華洋雜處的時代氛圍,更大膽借鑒“蒸汽朋克”

小时代2青木时代

http://qmsddy.com/

lll

文化的幻想和混搭特色,進行一番天馬行空的視覺呈現。看著影片中那明顯不合史實的龐然大物般的拆房機器“特洛伊”、展翅翱翔俯沖投彈的載人飛行器“天威翼”,對中國觀眾而言,不啻為一次大幅度解放想象力的刺激觀影體驗。

電影暗合瞭當下青年文化的“屌絲逆襲”與“遊戲人生”風潮,也在一定程度上解構著以往以“高富帥”為主角的的傳統武俠神話。看著武術運動員袁曉超飾演的底層盲流楊露禪,通過艱苦努力,不僅習得絕世武功,拯救蒼生,更抱得美人歸,成為事業愛情雙豐收的“成功人士”,這在同樣擁有“屌絲”心態且不滿自身現狀的大部分年輕觀眾看來,這簡直就是“中國夢”啊。

香港導演、臺灣編劇、香港武指、內地新人、三地明星、國際幕後團隊、超越文化地域性的題材,在華誼這座內地最大民營電影公司的舞臺上,曾任美國哥倫比亞(亞洲)制作總監的陳國富,憑借開闊的國際視野和紮實的電影修養,整合各方資源,進行瞭一次雖不完美卻激動人心的中國電影實驗,用《太極》為我們展示瞭未來“新華語電影”某種可能性。跟當年陳國富拍驚悚大片《雙瞳》非要把FBI到臺灣偵破連環殺人案的俗套故事,浸上臺灣社會信仰失落、迷信盛行的本土底色一樣,他原創發起的項目《太極》,在娛樂化的外表之下,同樣強調瞭對話現實的聲部。

也許是首集過於遊戲化、碎片化的呈現方式有些喧賓奪主,第二集形式更加簡樸,線索也更單一。楊露禪學拳的戲份,在續集中降級為眾多線索中草灰蛇線的一條,陳傢溝人如何“反抗強拆”,力爭生存,小时代2青木时代

http://qmsddy.com/

lll

成為主要線索。通過陳長興(梁傢輝飾演)與陳栽秧(馮紹峰飾演)這對冤傢父子的父子情怨,巧妙轉換為傳統與現代、封閉與開放、狹隘與包容之間的矛盾。

在這裡,陳傢溝成為彼時中國的縮影:面對外敵入侵,中國人要想生存下去,除瞭一身蠻力、不畏強暴外,是不是也需要少一份妄自尊大,多一份清醒自省?少一點抱殘守缺,多一些開放包容?至此,封建傢長陳長興與從小沉溺於“奇技淫巧”的兒子陳栽秧的矛盾浮出水面,一方面這種矛盾繼續為影片表層故事服務——陳栽秧制造各種恐慌,試圖阻止楊露禪學拳,並趕走他;另一方面,陳長興父子從多年對抗到獄中和解的過程,以感性的方式,傳遞瞭既珍視傳統又包容新事物的理性態度。

有趣的是,無論是小說《偷拳》還是電影《太極》,楊露禪的師傅都被塑造成瞭一個不囿門戶之見、敢於接納新人新事的可敬長者形象(陳長興既威嚴又搞怪,面對敵人巨炮轟炸時異常鎮靜的膽識和氣度讓人折服),這也許正體現瞭中國富有智識的知識分子既尊重傳統,又不陷入思古幽情的囹圄,對於現代性有包容之心。

影片後半程,陳長興囑托楊露禪夫婦上京求助惇親王,希望通過後者肅清吏治阻止方子敬拆遷,保全陳傢溝。這是一個“改良派”的信號——傳統的以武犯禁、玉石俱焚是民族主義式的“俠”;迂回作戰,借助上層的努力曲線救國,何嘗不是“俠”的另一種體現方式。影片結尾,眾人返回傢鄉,欣喜地發現,鐵路繞道,傢園得保。至此,西方和東方、傳統與現代、權勢與草根、國傢與個人的矛盾,在這裡得

小时代2青木时代

http://qmsddy.com/

lll

到瞭一個不無虛幻卻又美好的烏托邦式的調和。(影評人:胡不鬼)

第三篇:在网页中插入flash的标准代码

使用可实现Flash动画的插入,但也可以用..标记插入Flash动画,但后者有些复杂,若要和前者一样实现动画的插入,必须要加:

data=“1.swf”>

才能实现flash动画的插入。我想问下,前者和后者的功能应该差不多是吧,为什么后者那么麻烦,要加这么多的参数。还有就是object标签里面去掉data=“1.swf”,运行后好像正常的。加不加都没区别吗?谢谢啦!!

两个标签都可以实现在网页中插入视频或flash,object是微软的ie浏览器支持的的,当然微软也认嵌入标签embed.N的浏览器支持embed但忽略object。

据说object是发展方向.将来embed要淘汰。现在一般object内套embed,是为了在各种浏览器里都取得最佳浏览效果.如此而已,单用其一一般都可以。

我举一段html插入flash动画的比较标准的代码:

codebase=“http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0” width=“200” height=“75”>

pluginspage=“http:///go/getflashplayer”

type=“application/x-shockwave-flash” width=“200” height=“75”>

在这段代码中,首先你看到data=“1.swf”是不必要的。

param是参数的意思,标准格式都是在param标签里,定义name和value两个参数,每个参数格式都是名=值的形式。其实是很有规律。

当然param参数还有很多,只是插入flash用到以上这些罢了。embed也有很多参数啊,你没用到而已。

第四篇:C语言代码套用在Delphi编程中

C语言代码套用在Delphi编程中(C++Builder(VC++)与 Delphi)

Delphi适合用来开发应用程序,但是有时侯一些底层的东西可以直接使用C语言来开发.我在公司经常开发跟硬件相关的项目,而很多硬件的SDK包是用C来写的.这个时候我一般把它们转换成Delphi(PASCAL)语法的代码.一:将C语言的程序编译成DLL供Delphi调用.这种方法过于简单,而且需要额外带一个DLL文件,所以不在本文的讨论范围之内.二:直接转换C语言代码到DELPHI代码

C语言的函数格式与Delphi不同,它们是函数返回类型在前,函数声明在后.对于没有任何返回类型的函数则定义为VOID类型.例如:Delphi中函数function MyFunction:(intIN:integer):Bool;相应的C语言代码就变成Bool MyFunction(int intIN);又例如procedure MyProcedure;====>void MyProcedure;采用这种方法,一般要求对C语言比较熟悉.我一般是采用这种方法.下面是我收集整理的自己常用的Delphi与C之间的类型对应表.其中左边是C类型,右边是对应的Delphi类型: 以下是引用片段:

ABC-> TABC

ACCEL-> TAccel

ATOM-> TAtom

BITMAP-> TBitMap

BITMAPCOREHEADER-> TBitmapCoreHeader

BITMAPCOREINFO-> TBitmapCoreInfo

BITMAPFILEHEADER-> TBitmapFileHeader

BITMAPINFO-> TBitmapInfo

BITMAPINFOHEADER-> TBitmapInfoHeader

BOOL-> Bool

CBT_CREATEWND-> TCBT_CreateWnd

CBTACTIVATESTRUCT-> TCBTActivateStruct

CHAR-> Char

CHAR*-> PChar

CLIENTCREATESTRUCT-> TClientCreateStruct

COLORREF-> TColorRef

COMPAREITEMSTRUCT-> TCompareItemStruct

COMSTAT-> TComStat

CREATESTRUCT-> TCreateStruct

CTLINFO-> TCtlInfo

CTLSTYLE-> TCtlStyle

CTLtype-> TCtltype

DCB-> TDCB

DDEAACK-> TDDEAck

DDEADVISE-> TDDEAdvise

DDEDATA-> TDDEData

DDEPOKE-> TDDEPoke

DEBUGHOOKINFO-> TDebugHookInfo

DELETEITEMSTRUCT-> TDeleteItemStruct

DEVMODE-> TDevMode DOUBLE-> Double

DRAWITEMSTRUCT-> TDrawItemStruct DWORD-> LongInt

ENUMLOGFONT-> TEnumLogFont EVENTMSG-> TEventMsg FARPROC-> TFarProc FIXED-> TFixed FLOAT-> Single

GLYPHMETRICS-> TGlyphMetrics HANDLE-> THandle

HANDLETABLE-> THandleTable

HARDWAREHOOKSTRUCT-> THardwareHookStruct HELPWININFO-> THelpWinInfo INT-> Integer

KERNINGPAIR-> TKerningPair LOGBRUSH-> TLogBrush LOGFONT-> TLogFont

LOGPALETTE-> TLogPalette LOGPEN-> TLogPen LONG-> LongInt

LONG DOUBLE-> Extended LONG INT-> LongInt LPSTR-> PChar

LPWSTR-> PWideChar MAT2-> TMat2

MDICREATESTRUCT-> TMDICreateStruct

MEASUREITEMSTRUCT-> TMeasureItemStruct MENUITEMTEMPLATE-> TMenuItemTemplate

MENUITEMTEMPLATEHEADER-> TMenuItemTemplateHeader METAFILEPICT-> TMetaFilePict METAHEADER-> TMetaHeader METARECORD-> TMetaRecord MINMAXINFO-> TMinMaxInfo

MOUSEHOOKSTRUCT-> TMouseHookStruct MSG-> TMsg

MULTIKEYHELP-> TMultiKeyHelp

NCCALCSIZE_PARAMS-> TNCCalcSize_Params NEWTEXTMETRIC-> TNewTextMetric OFSTRUCT-> TOFStruct

OUTLINETEXTMETRIC-> TOutlineTextMetric PAINTSTRUCT-> TPaintStruct PALETTEENTRY-> TPaletteEntry PANOSE-> TPanose

PATTERN-> TPattern

POINTFX-> TPointFX

PSTR-> PChar

PWSTR-> PWideChar

RASTERIZER_STATUS-> TRasterizer_Status

RGBQUAD-> TRGBQuad

RGBTRIPLE-> TRGBTriple

SEGINFO-> TSegInfo

SHORT-> SmallInt

SHORT INT-> SmallInt

SIZE-> TSize

TEXTMETRIC-> TTextMetric

TPOINT-> TPoint

TRECT-> TRect

TTPOLYCURVE-> TTTPolyCurve

TTPOLYGONHEADER-> TPolygonHeader

UINT-> Word

UNSIGNED-> Word

UNSIGNED CHAR-> Byte

UNSIGNED INT-> Word

UNSIGNED LONG-> LongInt(DWORD)

UNSIGNED LONG INT-> LongInt

UNSIGNED SHORT-> Word

UNSIGNED SHORT INT-> Word

VOID*-> Pointer

WINDOWPLACEMENT-> TWindowPlacement

WINDOWPOS-> TWindowPos

WNDCLASS-> TWndClass

WORD-> Word 三:在Delphi中直接链接C语言的OBJ文件.这种方法的好处在于最终EXE不用带任何外部文件.也不用对C语言过于熟悉.我们都知道,代码在编译成可执行文件(或DLL,OCX文件,下同)之前,都必须得先生成OBJ文件(DELPHI一般是DCU文件,但也可以通过编辑编译选项生成OBJ文件),然后把OBJ文件和资源文件(*.RES)链接成最终的可执行文件.利用这个方法,我们可以直接把OBJ文件链接到我们的程序里面.不过需要注意的是,编译器不同,生成的OBJ文件也不一样.Microsoft的编译器生成的OBJ文件是COFF格式,而Borland的C++Builder生成的是OMF格式.因为我们需要在Delphi中链接,所以必须使用CBC,或者Borland官方站点带的免费编译工具.下面我们通过一个简单的例子来说明具体操作步骤:

这个例子是简单的提供一个函数,用来判断一个文件是否为Dat格式的VCD文件.头文件声明如下: 以下是引用片段:

/*

文件名称:DatFormat.h

*/

#ifndef DatFormat_H #define DatFormat_H #include

#pragma pack(push, 1)//这个与下面的配对,一般用到记录类型的时候需要定义,这里实际不用

#ifdef __cplusplus

extern “C” {

#endif

extern BOOL CheckIsDatFile(const char * FileName,BOOL *IsDatFile);

#ifdef __cplusplus

}

#endif

#pragma pack(pop)

#endif // DatFormat_H

具体实现代码DatFormat.c如下:

#include “DatFormat.h”

BOOL CheckIsDatFile(const char * FileName,BOOL *IsDatFile)

/*

函数说明:该函数用于判断一个文件是否为Dat文件(即VCD文件)格式.参数:

IN:

FileName:欲判断的文件名称

IN,OUT:

IsDatFile:是否为Dat格式文件

OUT:

读文件失败返回FALSE,否则返回TRUE.-----{

HANDLE hFile;

DWORD dwBytesRead;BOOL re;

char MyBuf[4];*IsDatFile=FALSE;//建立读文件句柄

hFile = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_EXISTING, 0, 0);

if(hFile == INVALID_HANDLE_VALUE)return FALSE;//读文件

re = ReadFile(hFile, &MyBuf, 4,&dwBytesRead, NULL);

if(dwBytesRead!=4){

CloseHandle(hFile);return FALSE;}

//读文件失败的时候

if(re!=TRUE){

CloseHandle(hFile);return FALSE;}

CloseHandle(hFile);

*IsDatFile=(MyBuf[0]=='R' && MyBuf[1]=='I' && MyBuf[2]=='F' && MyBuf[3]=='F');return(TRUE);} 运行CBC,新建一个工程,然后把DatFormat.c添加到工程里面,编译整个工程,将得到我们需要的OBJ文件:DatFormat.OBJ.然后我们关闭CBC即可,因为下面不再需要用到它了.运行Delphi,新建一个工程并保存.然后把DatFormat.OBJ拷贝到它的目录之下.在单元的implementation下面添加如下代码:

{$LINK 'DatFormat.obj'} //链接外部OBJ文件

function _CheckIsDatFile(const FileName:Pchar;IsDatFile:PBool):Bool;cdecl;external;//定义函数.其中cdecl进栈方式说明采用C语言格式传递参数.external说明是个外部声明函数.注意函数声明的原形与C定义的不一样.必须在前面添加一个下划线.原因是因为编译器的链接符号中.C与C++是不一样的.因为这个不是本文重点,所以这里不作讨论.请感兴趣的朋友自行参阅相关资料.然后我们写如下代码调用此函数: 以下是引用片段:

procedure TFrmMain.Button1Click(Sender: TObject);

var

IsDatFile:Bool;

begin

if OpenDialog1.Execute then

if _CheckIsDatFile(Pchar(OpenDialog1.FileName),@IsDatFile)then

if IsDatFile then ShowMessage('恭喜!该文件是一个Dat格式的视频文件!')

else ShowMessage('不好意思,该文件不是一个Dat格式的视频文件!')

else ShowMessage('读文件错误!');

end;编译这个程序,将得到一个干净的可执行EXE文件了.四:C++Builder中使用Delphi单元

这个实际是题外话了,不过这里还是提一提:假设我们有一个获取BIOS密码的Delphi单元

unit AwardBiosPas;

{=========

项目: 在Delphi编程中使用C语言代码-演示程序

模块: 获取BIOS密码单元 以下是引用片段:

interface

uses

windows, SysUtils;

function My_GetBiosPassword: string;

implementation

function CalcPossiblePassword(PasswordValue: WORD): string;

var

I: BYTE;

C: CHAR;

S: string[8];

begin

I := 0;

while PasswordValue <> 0 do

begin

Inc(I);

if $263 > PasswordValue then

begin

if $80 > PasswordValue then

S[I] := CHAR(PasswordValue)

else if $B0 > PasswordValue then

S[I] := CHAR(PasswordValue and $77)

else if $11D > PasswordValue then

S[I] := CHAR($30 or(PasswordValue and $0F))

else if $114 > PasswordValue then

begin

S[I] := CHAR($64 or(PasswordValue and $0F));

if '0' > S[I] then

S[I] := CHAR(BYTE(S[I])+ 8);

end

else if $1C2 > PasswordValue then

S[I] := CHAR($70 or(PasswordValue and $03))

else if $1E4 > PasswordValue then

S[I] := CHAR($30 or(PasswordValue and $03))

else

begin

S[I] := CHAR($70 or(PasswordValue and $0F));

if 'z' < S[I] then

S[I] := CHAR(BYTE(S[I])BYTE(S[I]))shr 2;end;

S[0] := CHAR(I);

PasswordValue := I shr 1;while PasswordValue < I do

begin {this is to do because award starts calculating with the last letter} C := S[BYTE(S[0])I + 1] := S[I];S[I] := C;Dec(I);end;

CalcPossiblePassword := S;end;

function readcmos(off: byte): byte;var

value: byte;begin asm

xor ax, ax mov al, off out 70h, al in al, 71h mov value, al end;

readcmos := value;end;

function My_GetBiosPassword: string;var

superpw, userpw: word;begin

if Win32Platform <> VER_PLATFORM_WIN32_NT then //不是NT

begin

pchar(@superpw)[0] := char(readcmos($1C));

pchar(@superpw)[1] := char(readcmos($1D));

pchar(@userpw)[0] := char(readcmos($64));

pchar(@userpw)[1] := char(readcmos($65));

Result:=('************BIOS密码**********************')+#13+'超级用户密码为:' + CalcPossiblePassword(superpw)+ #13 + '用户密码为:' + CalcPossiblePassword(userpw);

end

else

Result := '用户系统为NT,无法获取BIOS密码!';

end;

end.如何直接在CBC中使用它呢?新建一个CBC工程,然后把这个单元加到项目里面去.具体操作为:Add to Project--->文件类型:pascal unit(*.pas),然后Build Demo1.这个时候将在AwardBiosPas.pas的同目录下生成一个AwardBiosPas.hpp文件.把它引用到我们的需要调用的单元.然后直接调用即可: 以下是引用片段:

void __fastcall TFrmMain::Button1Click(TObject *Sender)

{

ShowMessage(My_GetBiosPassword());

} 五:其它方法.当然可以用RES将C语言生成的二进制文件,但这个方法与第一种方法差不多.优点是不怕文件丢失.缺点是很容易被别人直接用资源修改工具打开修改.这个时候可以使用笔者写的自制编程序工具PasAnywhere.不过这已经是另外一个话题了.

第五篇:VBA代码中引用Excel工作表中单元格区域的方式小结

VBA代码中引用Excel工作表中单元格区域的方式小结.txt大人物的悲哀在于他们需要不停地做出选择;而小人物的悲哀在于他们从来没有选择的机会。男人因沧桑而成熟,女人因成熟而沧桑。男人有了烟,有了酒,也就有了故事;女人有了钱,有了资色,也就有了悲剧。在VBA代码中引用Excel工作表中单元格区域的方式小结

问题一:在VBA代码中,如何引用当前工作表中的单个单元格(例如引用单元格C3)? 回答:可以使用下面列举的任一方式对当前工作表中的单元格(C3)进行引用。(1)Range(“C3”)(2)[C3](3)Cells(3, 3)(4)Cells(3, “C”)(5)Range(“C4”).Offset(-1)Range(“D3”).Offset(,-1)Range(“A1”).Offset(2, 2)(6)若C3为当前单元格,则可使用:ActiveCell(7)若将C3单元格命名为“Range1”,则可使用:Range(“Range1”)或[Range1](8)Cells(4, 3).Offset(-1)

------------------问题二:在VBA代码中,我要引用当前工作表中的B2:D6单元格区域,有哪些方式? 回答:可以使用下面列举的任一方式对当前工作表中单元格区域B2:D6进行引用。(1)Range(“B2:D6”)(2)Range(“B2”, “D6”)(3)[B2:D6](4)Range(Range(“B2”), Range(“D6”))(5)Range(Cells(2, 2), Cells(6, 4))(6)若将B2:D6区域命名为“MyRange”,则又可以使用下面的语句引用该区域: ① Range(“MyRange”)② [MyRange](7)Range(“B2”).Resize(5, 3)(8)Range(“A1:C5”).Offset(1, 1)(9)若单元格B2为当前单元格,则可使用语句:Range(ActiveCell, ActiveCell.Offset(4, 2))(10)若单元格D6为当前单元格,则可使用语句:Range(“B2”, ActiveCell)

------------------问题三:在VBA代码中,如何使用变量实现对当前工作表中不确定单元格区域的引用? 回答:有时,我们需要在代码中依次获取工作表中特定区域内的单元格,这通常可以采取下面的几种方式:

(1)Range(“A” & i)(2)Range(“A” & i & “:C” & i)(3)Cells(i,1)(4)Cells(i,j)其中,i、j为变量,在循环语句中指定i和j的范围后,依次获取相应单元格。------------------问题四:在VBA代码中,如何扩展引用当前工作表中的单元格区域? 回答:可以使用Resize属性,例如:

(1)ActiveCell.Resize(4, 4),表示自当前单元格开始创建一个4行4列的区域。(2)Range(“B2”).Resize(2, 2),表示创建B2:C3单元格区域。(3)Range(“B2”).Resize(2),表示创建B2:B3单元格区域。(4)Range(“B2”).Resize(, 2),表示创建B2:C2单元格区域。

如果是在一个单元格区域(如B3:E6),或一个命名区域中(如将单元格区域B3:E6命名为“MyRange”)使用Resize属性,则只是相对于单元格区域左上角单元格扩展区域,例如: 代码Range(“C3:E6”).Resize(, 2),表示单元格区域C3:D6,并且扩展的单元格区域可不在原单元格区域内。因此,可以知道Resize属性是相对于当前活动单元格或某单元格区域中左上角单元格按指定的行数或列数扩展单元格区域。

------------------问题五:在VBA代码中,如何在当前工作表中基于当前单元格区域或指定单元格区域处理其它单元格区域?

回答:可以使用Offset属性,例如:

(1)Range(“A1”).Offset(2, 2),表示单元格C3。

(2)ActiveCell.Offset(, 1),表示当前单元格下一列的单元格。(3)ActiveCell.Offset(1),表示当前单元格下一行的单元格。

(4)Range(“C3:D5”).Offset(, 1),表示单元格区域D3:E5,即将整个区域偏移一列。从上面的代码示例可知,Offset属性从所指定的单元格开始按指定的行数和列数偏移,从而到达目的单元格,但偏移的行数和列数不包括指定单元格本身。

------------------问题六:在VBA代码中,如何在当前工作表中引用交叉区域? 回答:可以使用Intersect方法,例如: Intersect(Range(“C3:E6”), Range(“D5:F8”)),表示单元格区域D5:E6,即单元格区域C3:E6与D5:F8相重迭的区域。

------------------问题七:在VBA代码中,如何在当前工作表中引用多个区域? 回答:

(1)可以使用Union方法,例如:

Union(Range(“C3:D4”), Range(“E5:F6”)),表示单元格区域C3:D4和E5:F6所组成的区域。Union方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作。

(2)也可以使用下面的代码:

Range(“C3:D4, E5:F6”)或[C3:D4, E5:F6] 注意:Range(“C3:D4”, “F5:G6”),表示单元格区域C3:G6,即将两个区域以第一个区域左上角单元格为起点,以第二个区域右下角单元格为终点连接成一个新区域。

同时,在引用区域后使用Rows属性和Columns属性时,注意下面代码的区别: ①Range(“C3:D4”, “F8:G10”).Rows.Count,返回的值为8; ②Range(“C3:D4,F8:G10”).Rows.Count,返回的值为2,即只计算第一个单元格区域。

------------------问题八:在VBA代码中,如何引用当前工作表中活动单元格或指定单元格所在的区域(当前区域)?

回答:可以使用CurrentRegion属性,例如:

(1)ActiveCell.CurrentRegion,表示活动单元格所在的当前区域。(2)Range(“D5”).CurrentRegion,表示单元格D5所在的当前区域。

当前区域是指周围由空行或空列所围成的区域。该属性的详细使用参见《CurrentRegion属性示例》一文。

------------------问题九:在VBA代码中,如何引用当前工作表中已使用的区域? 回答:可以使用UsedRange属性,例如:

(1)Activesheet.UsedRange,表示当前工作表中已使用的区域。

(2)Worksheets(“sheet1”).UsedRange,表示工作表sheet1中已使用的区域。

与CurrentRegion属性不同的是,该属性代表工作表中已使用的单元格区域,包括显示为空行,但已进行过格式的单元格区域。该属性的详细使用参见《解析UsedRange属性》一文。

------------------问题十:如何在单元格区域内指定特定的单元格? 回答:可以使用Item属性,例如:

(1)Range(“A1:B10”).Item(5,3)指定单元格C5,这个单元格处于以区域中左上角单元格A1(即区域中第1行第1列的单元格)为起点的第5行第3列。因为Item属性为默认属性,因此也可以简写为:Range(“A1:B10”)(5,3)。如果将A1:B10区域命名为”MyRange”,那么Range(“MyRange”)(5,3)也指定单元格C5。(2)Range(“A1:B10”)(12,13)指定单元格M12,即用这种方式引用单元格,该单元格不必一定要包含在区域内。

同时,也不需要索引数值是正值,例如: ① Range(“D4:F6”)(0,0)代表单元格C3; ② Range(“D4:F6”)(-1,-2)代表单元格A2。而Range(“D4:F6”)(1,1)代表单元格D4。(3)也可以在单元格区域中循环,例如:

Range(“D4:F6”)(2,2)(3,4)代表单元格H7,即该单元格位于作为左上角单元格E5的第3行第4列(因为E5是开始于区域中左上角单元格D4起的第2行第2列)。

(4)也能使用一个单个的索引数值进行引用。计数方式为从左向右,即在区域中的第一行开始从左向右计数,第一行结束后,然后从第二行开始从左到右接着计数,依次类推。(注:从区域中第一行第一个单元格开始计数,当第一行结束时,转入第二行最左边的单元格,这样按一行一行从左向右依次计数。以单元格区域中第1个单元格开始,按上述规则依次为第2个单元格、第3个单元格„.等等),例如: Range(“A1:B2”)(1)代表单元格A1; Range(“A1:B2”)(2)代表单元格B1; Range(“A1:B2”)(3)代表单元格A2; Range(“A1:B2”)(4)代表单元格B2。这种方法可在工作表中连续向下引用单元格(即不一定是在单元格区域内,但在遵循相同的规律),例如:

Range(“A1:B2”)(5)代表单元格A3;

Range(“A1:B2”)(14)代表单元格B7,等等。也可以使用单个的负数索引值。

这种使用单个索引值的方法对遍历列是有用的,例如,Range(“D4”)(1)代表单元格D4,Range(“D4”)(2)代表单元格D5,Range(“D4”)(11)代表单元格D14,等等。同理,稍作调整后也可遍历行,例如:

Range(“D4”).Columns(2)代表单元格E4,Range(“D4”).Columns(5)指定单元格H4,等等。(5)当与对象变量配合使用时,Item属性能提供简洁并有效的代码,例如: Set rng = Worksheets(1).[a1] 定义了对象变量后,像单元格方法一样,Item属性允许使用两个索引数值引用工作表中的任一单元格,例如,rng(3,4)指定单元格D3。(By Chip Pearson)

------------------问题十一:在VBA代码中,如何引用当前工作表中的整行或整列? 回答:见下面的示例代码:

(1)Range(“C:C”).Select,表示选择C列。

Range(“C:E”).Select,表示选择C列至E列。(2)Range(“1:1”).Select,表示选择第一行。

Range(“1:3”).Select,表示选择第1行至第3行。(3)Range(“C:C”).EntireColumn,表示C列; Range(“D1”).EntireColumn,表示D列。

同样的方式,也可以选择整行,然后可以使用如AutoFit方法对整列或整行进行调整。

------------------问题十二:在VBA代码中,如何引用当前工作表中的所有单元格? 回答:可以使用下面的代码:

(1)Cells,表示当前工作表中的所有单元格。

(2)Range(Cells(1, 1), Cells(Cells.Rows.Count, Cells.Columns.Count)),其中Cells.Rows表示工作表所有行,Cells.Columns表示工作表所有列。

------------------问题十三:在VBA代码中,如何引用工作表中的特定单元格区域?

回答:在工作表中,您可能使用过“定位条件”对话框。可以通过选择菜单“编辑——定位”,单击“定位”对话框中的“定位条件”按钮显示该对话框。这个对话框可以允许用户选择特定的单元格。例如:

(1)Worksheets(“sheet1”).Cells.SpecialCells(xlCellTypeAllFormatConditions),表示工作表sheet1中由带有条件格式的单元格所组成的区域。(2)ActiveCell.CurrentRegion.SpecialCells(xlCellTypeBlanks),表示当前工作表中活动单元格所在区域中所有空白单元格所组成的区域。

当然,还有很多常量和值的组合,可以让您实现特定单元格的查找并引用。参见《探讨在工作表中找到最后一行》一文。------------------问题十四:在VBA代码中,如何引用其它工作表或其它工作簿中的单元格区域?

回答:要引用其它工作表或其它工作簿中的单元格区域,只需在单元格对象前加上相应的引用对象即可,例如:

(1)Worksheets(“Sheet3”).Range(“C3:D5”),表示引用工作表sheet3中的单元格区域C3:D5。(2)Workbooks(“MyBook.xls”).Worksheets(“sheet1”).Range(“B2”),表示引用MyBook工作簿中工作表Sheet1上的单元格B2。

------------------问题十五:还有其它的一些情形吗? 回答:列举如下:

(1)Cells(15),表示单元格O1,即可在Cells属性中指定单元格数字来选择单元格,其计数顺序为自左至右、从上到下,又如Cells(257),表示单元格B1。

(2)Cells(, 256),表示单元格IV1,但是如果Cells(, 257),则会返回错误。

------------------结语

我们用VBA对Excel进行处理,一般是对其工作表中的数据进行处理,因此,引用单元格区域是ExcelVBA编程中最基本的操作之一,只有确定了所处理的单元格区域,才能使用相应的属性和方法进行下一步的操作。

上面列举了一些引用单元格区域的情形和方式,可以看出,引用单元格区域有很多方式,有一些可能不常用,可以根据工作表的所处的环境和个人编程习惯进行选择使用。

当然,在编写程序时,也可能会将上面的一些属性联合使用,以达到选取特定操作对象的目的,例如Offset属性、Resize属性、CurrentRegion属性、UsedRange属性等的组合。

找到最后一行的一些方法探讨 使用End属性

在ExcelVBA中,使用End(xlUp)查找最后一行是最常使用且最为简单的方法,它假设要有一列总包含有数据(数字、文本和公式等),并且在该列中最后输入数据的单元格的下一行不会包含数据,因此不必担心会覆盖掉已有数据。但该方法有两个缺点:(1)仅局限于查找指定列的最后一行。

(2)如果该列中最后一行被隐藏,那么该隐藏行将被视作最后一行。因此,在最后一行被隐藏时,其数据可能会被覆盖。但该列中间的隐藏行不会影响查找的结果。[示例代码01] Sub EndxlUp_OneColLastRow()If Range(“A” & Rows.Count).End(xlUp)= Empty Then GoTo Finish '获取最后一行

MsgBox “最后一行是第” & Range(“A” & Rows.Count).End(xlUp).Row & “行.” Exit Sub Finish: MsgBox “没有发现公式或数据!” End Sub [示例代码02] Sub NextRowInColumnUsedAsSub()'包含所有数据和公式,忽略隐藏的最后一行

Range(“A” & Range(“A” & Rows.Count).End(xlUp).Row + 1).Select End Sub [示例代码03] Sub NextRowInColumnUsedAsFunction()'包含所有数据和公式,忽略隐藏的最后一行

Range(“A” & LastRowInColumn(“A”)+ 1).Select End Sub '-------Public Function LastRowInColumn(Column As String)As Long LastRowInColumn = Range(Column & Rows.Count).End(xlUp).Row End Function 注意,要输入新数据的列可能与我们所查找最后一行时所使用的列不同,例如,在上例中,我们可以修改为在B列中查找该列的最后一行,而在A列相应行的下一行中输入新的数据。

------------------使用Find方法

Find方法在当前工作有数据中进行查找,不需要指定列,也可以确保不会意外地覆盖掉已有数据。其中,参数LookIn指定所查找的类型,有三个常量可供选择,即xlValues、xlFormulas和xlComments。

(1)常量xlFormulas将包含零值的单元格作为有数据的单元格。(当设置零值不显示时,该单元格看起来为空,但该参数仍将该单元格视为有数据的单元格)(2)常量xlValues将包含零值的单元格(如果设置零值不显示时)作为空白单元格,此时,若该单元格在最后一行,则Find方法会认为该单元格所在的行为空行,因此,该单元格中的内容可能会被新数据所覆盖。

[注:在Excel中,选择菜单“工具”——“选项”,在打开的“选项”对话框中,选择“视图”选项卡,将其中的“零值”前的复选框取消选中,则工作表中的零值都不会显示] 如果在参数LookIn中使用常量xlValues的话,还存在一个问题是:如果您将最后一行隐藏,则Find方法会认为倒数第二行是最后一行,此时您在最后一行的下一行输入数据,则会将实际的最后一行的数据覆盖。

您可以在隐藏最后一行与不隐藏最后一行,或者是最后一行显示零值与不显示零值时,运行下面的示例代码04,看看所得的结果有什么不同。[示例代码04] Sub Find_LastRowxlValues()On Error GoTo Finish '获取最后一行

MsgBox “最后一行是第” & Cells.Find(“*”, _ SearchOrder:=xlByRows, LookIn:=xlValues, _ SearchDirection:=xlPrevious).EntireRow.Row & “行” Exit Sub Finish: MsgBox “没有发现数值!” End Sub 因此,在使用Find方法时,您应该考虑所选参数设置的常量,以及工作表最后一行是否有可能被隐藏或不显示零值。如果您忽视这些情况,很可能得不到您想要的结果,或者是覆盖掉已有数据。使用常量xlFormulas可以避免这个问题,如下面的示例代码05所示。[示例代码05] Sub Find_LastRowxlFormulas()On Error GoTo Finish '获取最后一行

MsgBox “最后一行是第” & Cells.Find(“*”, _ SearchOrder:=xlByRows, LookIn:=xlFormulas, _ SearchDirection:=xlPrevious).EntireRow.Row & “行” Exit Sub Finish: MsgBox “没发现数值或公式!” End Sub 下面再列举几个示例代码。[示例代码06] Sub NextRowUsedAsSub()'选取最后一行的下一行 Range(“A” & Cells.Find(“*”, LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row + 1).Select End Sub [示例代码07] Sub NextRowUsedAsFunction()'选取最后一行的下一行(调用函数)Range(“A” & LastRow + 1).Select End Sub '-------Public Function LastRow()As Long '本代码包含隐藏行

'使用常量xlFormulas,因为常量xlValues会忽略隐藏的最后一行 LastRow = Cells.Find(“*”, LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row End Function 注:Find方法中,参数LookIn的默认值为xlFormulas。

------------------使用SpecialCells方法

SpecialCells方法用于查找指定类型的值,其语法为SpecialCells(Type,Value),有两种主要的使用方式:

(1)若参数Type仅考虑常量,则在查找时会忽略和覆盖由公式生成的任何数据,如示例代码08所示。

(2)若参数Type仅考虑由公式生成的数据,则在查找时会忽略和覆盖任何常量数据,如示例代码09所示。如果参数Type是xlCellTypeConstants或者是xlCellTypeFormulas,则Value参数可使用常量决定哪种类型的单元格将被包含在结果中,这些常量值能组合而返回多个类型,其缺省设置是选择所有的常量或公式,而不管是何类型,可使用下面四个可选的常量: 1)xlTextValues(包含文本);2)xlNumbers(包含数字);3)xlErrors(包含错误值);4)xlLogical(包含逻辑值)自已在工作表输入一些含有数值和公式的数据,隐藏或不隐藏最后一行或公式所在的行,先体验下面的两段示例代码。[示例代码08] '当最后一行为公式或隐藏了最后行时,会忽略,即认为倒数第二行为最后一行 Sub NextConstantRowFunction()Range(“A” & LastConstantRow(True, True, True, True)+ 1).Select End Sub '------Public Function LastConstantRow(Optional IncludeText As Boolean, _ Optional IncludeNumbers As Boolean, _ Optional IncludeErrors As Boolean, _ Optional IncludeLogicals As Boolean)As Long Dim Text As Long, Numbers As Long, Errors As Long Dim Logical As Long, AllTypes As Long If IncludeText Then Text = xlTextValues Else Text = 0 If IncludeNumbers Then Numbers = xlNumbers Else Numbers = 0 If IncludeErrors Then Errors = xlErrors Else Errors = 0 If IncludeLogicals Then Logical = xlLogical Else Logical = 0 AllTypes = Text + Numbers + Errors + Logical On Error GoTo Finish LastConstantRow = Split(Cells.SpecialCells(xlCellTypeConstants, AllTypes).Address, “$”)_(UBound(Split(Cells.SpecialCells(xlCellTypeConstants, AllTypes).Address, “$”)))Exit Function Finish: MsgBox “没有发现数据!” End Function [示例代码09] '查找含有公式的单元格所在的行,忽略该行以后的常量和隐藏的行 Sub NextFormulaRowFunction()Range(“A” & LastFormulaRow(True, True, True, True)+ 1).Select End Sub '-------Public Function LastFormulaRow(Optional IncludeText As Boolean, _ Optional IncludeNumbers As Boolean, _ Optional IncludeErrors As Boolean, _ Optional IncludeLogicals As Boolean)As Long Dim Text As Long, Numbers As Long, Errors As Long Dim Logical As Long, AllTypes As Long If IncludeText Then Text = xlTextValues Else Text = 0 If IncludeNumbers Then Numbers = xlNumbers Else Numbers = 0 If IncludeErrors Then Errors = xlErrors Else Errors = 0 If IncludeLogicals Then Logical = xlLogical Else Logical = 0 AllTypes = Text + Numbers + Errors + Logical On Error GoTo Finish LastFormulaRow = Split(Cells.SpecialCells(xlCellTypeFormulas, AllTypes).Address, “$”)_(UBound(Split(Cells.SpecialCells(xlCellTypeFormulas, AllTypes).Address, “$”)))Exit Function Finish: MsgBox “没有发现数据!” End Function 下面的示例代码10忽略最后一行带有公式的单元格,即当最后一行的单元格中含有公式时,将倒数第二行作为最后一行,即只考虑直接输入到工作表中的数据。当最后一行没有公式但被隐藏时,并不影响该方法的判断。[示例代码10] Sub SpecialCells_LastRowxlCellTypeConstants()Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect([A:A], Cells._ SpecialCells(xlCellTypeConstants).EntireRow).EntireRow '获取最后一行

MsgBox “最后一行是第” & Split(MyRow.Address, “$”)_(UBound(Split(MyRow.Address, “$”)))& “行” Set MyRow = Nothing Exit Sub Finish: MsgBox “没有发现数据!” End Sub 注:因为上述代码使用了’Split’函数,故只适合于Office2000及以上的版本。该方法也允许我们指定单个数据类型,诸如数字数据或文本数据,如下所示。

下面,我们查找的最后一行是仅在行中有数字(而不包含公式)的单元格的最后一行。[示例代码11] Sub SpecialCells_LastRowxlCellTypeNumberConstants()Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect([A:A], Cells._ SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow)'获取最后一行

MsgBox “最后一行是第” & Split(MyRow.Address, “$”)_(UBound(Split(MyRow.Address, “$”)))& “行” Set MyRow = Nothing Exit Sub Finish: MsgBox “没有发现数据!” End Sub 下面,我们查找的最后一行是仅在行中有文本(而不包含公式)的单元格的最后一行。[示例代码12] Sub SpecialCells_LastRowxlCellTypeTextConstants()Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect([A:A], Cells._ SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow)'获取最后一行

MsgBox “最后一行是第” & Split(MyRow.Address, “$”)_(UBound(Split(MyRow.Address, “$”)))& “行” Set MyRow = Nothing Exit Sub Finish: MsgBox “没有发现数据!” End Sub 下面,我们查找的最后一行是仅在行中有公式的单元格的最后一行。[示例代码13] Sub SpecialCells_LastRowxlCellTypeFormulas()Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect([A:A], Cells._ SpecialCells(xlCellTypeFormulas).EntireRow).EntireRow '获取最后一行

MsgBox “最后一行是第” & Split(MyRow.Address, “$”)_(UBound(Split(MyRow.Address, “$”)))& “行” Set MyRow = Nothing Exit Sub Finish: MsgBox “没有发现数据!” End Sub 同上面所讲述的一样,我们也能使用SpecailCells方法去找到其它特定类型的单元格所在的最后一行,下面是这些常量的一个完整的列表:

XlCellTypeAllFormatConditions(任何格式的单元格)XlCellTypeAllValidation(带有数据有效性的单元格)XlCellTypeBlanks(所使用区域中的空白单元格)XlCellTypeComments(包含有批注的单元格)XlCellTypeConstants(包含有常量的单元格)XlCellTypeFormulas(包含有公式的单元格)XlCellTypeLastCell(已使用区域中的最后一个单元格(看下面))XlCellTypeSameFormatConditions(有相同格式的单元格)XlCellTypeSameValidation(有相同数据有效性条件的单元格)XlCellTypeVisible(工作表中所有可见的单元格)

下载《三角洲特种部队7》中的秘技代码word格式文档
下载《三角洲特种部队7》中的秘技代码.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐