工程倒计时牌
这多么鼓舞人心!她如擂起阵阵战鼓,激励人们奋进!
能否在EXCEL中制成这样的广告呢?
能!而且还很很简单。
首先制表如下:
制表
在单元格B3中,输入系统时间:B3: =TODAY()
在单元格D3中,输入计划结束日期;
在单元格C3中,有两种方案:
一是从开始就进行倒计时,二是距结束日期为若干天进行倒计时(设25天)。
当从开始就进行倒计时:C3: =D3-B3;
当距结束日期为若干天进行倒计时:C3: =IF(D3-B326,D3-B3,)。
为了在B3中出现今天是2006年8月15日工程还有,可在B3中进行单元格格式:在类型(T)中如下图输入今天是2006年8月15日工程还有。
在B3中进行单元格格式:在类型(T)中如下图输入今天是2006年8月15日工程还有
下一步利用图表进行作图:
选中A2:D3 图表向导 条形图 堆积条形图
选中A2:D3 图表向导 条形图 堆积条形图
下一步 数据区域 系列产生在列 下一步 输入标题 选择网格线 勾销图例 数据标志显示V值 下一步直至完成 如图:
选择网格线 勾销图例 数据标志显示V值
对座标轴进行格式:刻度/数字/对齐如下:
对座标轴进行格式
对座标轴进行格式
清除分类轴
同时清除分类轴。
其余格式略。
注:更多精彩教程请关注图老师电脑教程栏目,图老师电脑办公群:189034526欢迎你的加入
单元格是Excel中不可或缺的重要组成员素之一,用好单元格可以让你的办公水平大大提升。下面和大家分享一下几个单元格的技巧。
1.对单元格进行同增同减操作
在Excel中,如果要对某一单元格或某一区域中的每个单元格中的数值进行同加、同减、同乘或同除操作时,可以使用选择性粘贴功能轻松实现。
例如:想让选定区域中的每个单元格都同乘以2,可以这样操作,首先在选定区域外的某个单元格中输入2,选择这个单元格并复制,如图1所示。
图1 选定并复制单元格
然后选择要进行同乘操作的单元格区域,选择好后,单击编辑菜单,选择选择性粘贴命令,打开选择性粘贴对话框,在运算栏中选择乘单选项,单击确定按钮,对话框中的设置如图2所示。
图2 选择性粘贴对话框
选择区域中的每个单元格就都进行了乘以2的操作,而且已经将结果显示在了每个单元格中,其余操作类似。
图老师小编提示:对于这个操作一定要注意操作顺序:选定并复制要乘的数所在的单元格,接下来选中要进行运算的单元格区域,然后再执行编辑选择性粘贴命令。
使用这个功能还可以对单元格进行自身操作,例如可以进行单元格的自身相加、相减、相乘以及相除
操作。操作步骤如下:选择要进行自身操作的单元格复制,如图3所示。
图3 选择并复制数据区域
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/ejc/)然后单击编辑选择性粘贴命令,打开选择性粘贴对话框,在运算栏中选择相应的运算操作,单击确定按钮,就可以实现单元格自身的操作。
2.在已有数据的单元格中批量加入固定字符
如果数据已经录入,需要在某些数据前面或后面再加入固定字符该怎么操作呢?
例如:要将B列中每个单元格中的数据后面都加上固定数字0000,可以进行操作:选中C列,单击鼠标右键,从快捷菜单中选择插入命令,在B列后插入一空白列,如图4所示。
图4 插入空白列
选中C3单元格,在公式栏中输入=B3&"0000",单击确认按钮,这个单元格中的数字就改变了,如图5所示。(注意:在编辑栏中输入的引号一定要是英文半角引号)
图5 添加固定内容
然后使用自动填充功能,拖动自动填充柄就可以将一列中的数据都改变了。
3.解决在单元格中不能输入小数点的问题
不知你是否遇到过这种问题,在单元格中输入小数点时,它总是会自动变为逗号,这是怎么回事呢?打开控制面板,选择其中的区域和语言选项项,打开区域和语言选项对话框,在区域选项选项卡中单击定义按钮,打开自定义区域选项对话框,看一下小数点项中的内容,如果这里显示的是,,那么问题就出在这里了,将它改为.,问题就解决了。自定义区域选项对话框如图6所示。
图6 自定义区域选项对话框
4.快速选中包含数据的所有单元格
大家都知道选中整个工作表有很多种方法,如按Ctrl+A组合键、单击全选按钮等,可有时需要选中所有包含数据内容的单元格区域,该怎么操作呢?可以这样操作:首先选中一个包含数据的单元格,然后按下Ctrl+Shift+*组合键,就可以把所有包含数据的单元格选中。效果如图7所示。
图7 选中包含数据的所有单元格
选定的区域是这样定义的,根据选定的单元格向四周辐射所涉及到的所有数据单元格的最大区域。
图老师小编提示:本技巧仅适合于工作表中的数据是连续的情况。
注:更多精彩教程请关注图老师电脑教程栏目,图老师电脑办公群:189034526欢迎你的加入
因工作需要,我们常常需要对工作表的某一范围设置访问权限,禁止别人改动该单元格区域的内容。这里向大家介绍实现这一目标的3种方法。
一、设置ScrollArea属性
如果要使工作表的A1:E10单元格区域不被改动(下同),可以采取限定垂直滚动条范围的办法,隐藏A1:E10单元格区域,从而达到限定使用范围的目的。具体步骤如下:
1、执行视图→工具栏→控件工具箱命令,在打开的控件工具箱工具栏中,单击属性按钮,显示如图一所示的属性对话框。
图1
2、在属性对话框的ScrollArea一栏里输入A45:E45(该范围可自己选定),然后按Enter键。
执行上述步骤后,我们发现A1:E10单元格区域不再出现在工作表中窗口中了,而且也无法移动垂直滚动条。由于ScrollArea属性不是永久的,关闭了文件,下次再打开时又可随意选择编辑上述区域。因此还需在ThisWorkbook代码模块中添加下面一段代码。
Private Sub Workbook_Open()
Worksheets("sheet1").ScrollArea = "A45:E45"
End Sub
这样,每次打开工作簿时,上述代码自动运行,并设定ScrollArea属性。作为保护工作表内容,这种方法是个不错的选择。
二、使用工作表保护
1、激活Sheet1表,选中允许填充数据的单元格区域,右击选择设置单元格格式,在保护选项卡中取消锁定复选项,单击确定按钮退出。然后依次单击菜单工具→保护→保护工作表,在弹出的对话框列表中,输入保护密码,勾选选定未锁定的单元格选项,其他选项全部清除(如图2所示),点击确定返回。
图2
2、保护工作表后,再按回车键或按方向键,光标则只能在原来取消锁定的单元格之间来回移动,而被锁定A1:E10单元格区域单元格则不能激活,从而达到了限制访问的目的。
三、利用VBA设置访问权限
我们也可以利用VBA代码,设置权限密码,当编辑Sheet1工作表A1:E10单元格区域时,自动弹出输入密码提示框,密码正确时,该单元格被激活,否则,单元格内容不能被改动。具体方法如下:
执行工具→宏→Visul Basic编辑器命令或按下Alt+F11组合键,在代码窗口左侧的工程资源管理器窗口中,双击Excel对象下的Sheet1工作表,在右侧的代码窗口中输入以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
X = Target
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 And Target.Row = 10 Then
Y = InputBox("请输入密码:")
If Y 123 Then
MsgBox "密码错误,你无编辑权限!"
Range("A11").Select
End If
End If
End Sub
注:更多精彩教程请关注图老师电脑教程栏目,图老师电脑办公群:189034526欢迎你的加入
从SQL Server中导入/导出 Excel 的基本方法
/*=================== 导入/导出 Excel 的基本方法 ===================*/
从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:
/*===================================================================*/
--如果接受数据导入的表已经存在
insert into 表 select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/ejc/)--如果导入数据并生成表
select * into 表 from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/ejc/)/*===================================================================*/
--如果从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/ejc/)select * from 表
--如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:
--导出表的情况
EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 out "c:test.xls" /c -/S"服务器名" /U"用户名" -P"密码"'
--导出查询的情况
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout "c:test.xls" /c -/S"服务器名" /U"用户名" -P"密码"'
/*--说tulaoshi.com明:
c:test.xls 为导入/导出的Excel文件名.
sheet1$ 为Excel文件的工作表名,一般要加上$才能正常使用.
--*/
--上面已经说过,用BCP导出的是类Excel文件,其实质为文本文件,
--要导出真正的Excel文件.就用下面的方法
/*--数据导出EXCEL
导出表中的数据到Excel,包含字段名,文件为真正的Excel文件
,如果文件不存在,将自动创建文件
,如果表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型
--邹建 2003.10--*/
/*--调用示例
p_exporttb @tbname='地区资料',@path='c:',@fname='aa.xls'
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_exporttb]
GO
create proc p_exporttb
@tbname sysname, --要导出的表名
@path nvarchar(1000), --文件存放目录
@fname nvarchar(250)='' --文件名,默认为表名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)
--参数检测
if isnull(@fname,'')='' set @fname=@tbname+'.xls'
--检查文件是否已经存在
if right(@path,1)'' set @path=@path+''
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql
--数据库创建语句
set @sql=@path+@fname
if exists(select 1 from #tb where a=1)
set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'
+';CREATE_DB=" +';DATABASE='+@sql+'"'
--连接数据库
exec @err=sp_oacreate 'adodb.connection',@obj out
if @err0 goto lberr
exec @err=sp_oamethod @obj,'open',null,@constr
if @err0 goto lberr
/*--如果覆盖已经存在的表,就加上下面的语句
--创建之前先删除表/如果存在的话
select @sql='drop table ['+@tbname+']'
exec @err=sp_oamethod @obj,'execute',@out out,@sql
--*/
--创建表的SQL
select @sql='',@fdlist=''
select @fdlist=@fdlist+',['+a.name+']'
,@sql=@sql+',['+a.name+'] '
+case when b.name in('char','nchar','varchar','nvarchar') then
'text('+cast(case when a.length255 then 255 else a.length end as varchar)+')'
when b.name in('tynyint','int','bigint','tinyint') then 'int'
when b.name in('smalldatetime','datetime') then 'datetime'
when b.name in('money','smallmoney') then 'money'
else b.name end
FROM syscolumns a left join systypes b on a.xtype=b.xusertype
where b.name not in('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')
and object_id(@tbname)=id
select @sql='create table ['+@tbname
+']('+substring(@sql,2,8000)+')'
,@fdlist=substring(@fdlist,2,8000)
exec @err=sp_oamethod @obj,'execute',@out out,@sql
if @err0 goto lberr
exec @err=sp_oadestroy @obj
--导入数据
set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES
;DATABASE='+@path+@fname+''',['+@tbname+'$])'
exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from '+@tbname)
return
lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
lbexit:
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述
select @sql,@constr,@fdlist
go
--上面是导表的,下面是导查询语句的,那么大家学会了吗?