选定区域的数据。
--------------------------------------------------------------------------------
36.解方程组的技巧
如果有这样一个方程:x3+cos(x)-10=0,你该怎样求解呢?找来一大堆数学手册,再动用函数计算器,花费半天时间,还不一定能得出准确结果。而当你面对如下方程组时:
x2+y/2-12cos(z)=12 8sin(x)+5y-2z=8 3x-12y+8z=3
是不是找来一大堆算法和编程的书,一行一行地写程序,敲入电脑,再调试运行? 其实,你所要做的并没有这么复杂,你只需有一个Excel就足够了。
(一)、解单变量方程
我们先来求一下上面的方程:x3+cos(x) -10=0 。首先,在一张工作表上定义一个单元格(如A1)做变量x 。定义方法是:先选定单元格 A1,然后选择选单栏中的“插入→名称” 选项,再选择“定义”,在名称框中填入变量名称“x”,按“确定”按钮 即可。
双击另一个单元格(如A2),然后填入公式“=x^3+cos(x)-10 ”。选“工具”选单栏中的“单变量求解”选项,在“目标单元”格填 “A2”,可变单元格填“A1”,按“确定”按钮,在单元格“A1”中即出现了方程的解x=2.195708(见图:tx4.jpg), 简单吧。
(二)、解多元方程组
现在,让我们试着来解上面的那个方程组。按照同样的方法,先在一张表上定义三个单元格(如A1、B1、C1)作为变量x、y、z。接着在另外三个单元格(如A2、A3、A4)中分别填入公式“=x^2+y/2-12cos(z) ”、“ =8sin(x)+5y-2z”、“= 3x-12y+ 8z”。然后选“工具”的“规划求解”选项。
如果你的工具选单中没有这个“规划求解”选项,你就需要自己安装一下。在“工具”选单中,单击“加载宏”命令。如果在“加载宏”对话框中,没有列出 “规划求解”项,请单击“浏览”按钮,选定 Solver.xla ,加载宏的驱动器、文件夹和文件名,通常位于 Library\\Solver 文件夹下。如果找不到文件,请运行“安装”程序。
在“加载宏”对话框中,选定“规划求解”复选框。好了,你可以使用了(注意:在“加载宏”对话框中选定的加载宏在被删除之前一直保持激活状态)。
在弹出的窗口中,在“目标单元”格填空格,目标值任意,可变单元格填“x,y,z”(以逗号间隔) 。在“约束条件”格填“A2=12”、“A3=8”、“A4=3”。最后按求解按钮----结果出来了。
用这种方法可以求解任意元的方程组。 只要你的计算机内存足够大、CPU足够快,一切都没问题。笔者曾在一台内存仅8M的575上求解过一个9元的方程组,不但没有求出结果,反而死机了----内存太小。
-------------------------------------------------------------------------------- 37.用VBA(编程)保护Excel文档
VBA(Visual Basic for Application)是Excel应用程序中功能非常强大的编程语言,为了规范不同的用户对 Excel应用程序的访问能力,需要对Excel文档及有关的数据进行有效的保护, 这里根据自己及同行们的体会,从以下二个方面介绍用VBA编程法实现对Excel文档的保护。
对工作簿的保护
1.利用VBA中Workbook对象的SaveAs方法实现对工作簿的保护, 下面就对SaveAs有 关的参量作一介绍:
Filename:该字符串表示要保存的文件名。 可包含完整路径。 如果不指定路径,Microsoft Excel 将文件保存到当前文件夹。
FileFormat: 可选,文件的保存格式。
Password :为一个区分大小写的字符串(不超过15个字符) ,用于指定文件的保护密码。 WriteResPassword: 该字符串表示文件的写保护密码。 如果文件保存时带有密码,但打开文件时不输入密码,则该文件以只读模式打开。
ReadOnlyRecommended :如果为True则在打开文件时显示一条信息,提示该文件以只读模式打开。
下例就是在Excel应用程序中添加一工作簿,将工作簿按常规文件格式存为“C:\\pj\\obj\\经济评价.xls”文件,并给该文件指定保护密码“12”以及写保护密码“23”。
Sub 保护工作簿()
NewWorkbook = Workbooks.add
NewWorkbook.SaveAs FileName: =\经济评价.xls\XlNormal,Password:=\ End sub
2.利用VBA中Workbook对象的Protect方法对工作簿的结构和窗口进行保护,Workbook对象的Protect方法带有以下三个参量:
Password: 为加在工作表或工作簿上区分大小写的密码字符串。 如果省略本参数,不用密码就可以取消对该工作簿的保护。否则,取消对该工作表或工作簿的保护时必须提供该密码。如果忘记了密码,就无法取消对该工作表或工作簿的保护。最好在安全的 地方保存一份密码及其对应文档名的列表。
Structure: 若为True则保护工作簿结构(工作簿中工作表的相对位置)。默认值为False。 Windows 若为True则保护工作簿窗口。
下例就是对一名为“经济评价.xls”的工作簿实现“结构”和“窗口”保护:
Sub 保护工作簿()
Workbooks (″经济评价″) .Protect Password: =\Windows:=True End sub
Workbook对象的Unprotect方法用于取消对工作簿的保护。Unprotect方法只有一个参量,就是保护工作表时所用的口令。
3.对工作簿进行隐藏保护,可使他人无法看到其对应的窗口。操作方法如下:
在VBA中使用Workbook对象下面的Windows对象的Visible属性对工作簿进行隐藏和取消隐藏,Visible属性的值可取“True”和“False”两种。 下面程序代码完成对工作簿“book.xls”的隐藏:
Sub 隐藏工作簿() Workbooks(\ActiveWindow.Visible = False End sub 或:
Sub 隐藏工作簿()
Workbooks(\(1).Visible=False End sub
对工作表的保护
1.对工作表实现口令保护利用VBA调用Worksheet对象的Protect方法对工作表进行保护,Protect带有以下参量:
Password 用于保护工作表的口令。
Drawingobjects 若为True,则对工作表中的Drawingobjects对象进行保护,缺省值为True。 Contents 若为True,则对单元格内容进行保护,缺省值为True。 下面程序代码完成对工作表“基础数据表”的保护: Sub 保护工作表()
Worksheets(″基础数据表″).Protect Password:=\End sub
2.对工作表实现隐藏保护,使他人无法看到工作表:
利用VBA设置Worksheet对象的Visible属性来隐藏工作表;Visible属性的值为以下三个值中的一个:
True 工作表为显示状态。 False 工作表为隐藏状态。
XlVerHidden 工作表为隐藏状态,且用户不能通过“取消隐藏”对话框将其改为显示状态。当Visible的值为XlVerHidden时,只能利用VBA将其重新设置为True。 Sub 隐藏工作表()