Excel word ppt office使用技巧大全(DOC格式)-第81部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
1) 拖动鼠标并且选择 Sheet2 中需要“拍照”的内容。
2) 用鼠标单击工具栏上准备好的“照相机”按钮,于是这个选定的区域就被“拍”了下
来。
3、粘贴“照片”
1) 打开 Sheet1 工作表。
2) 在需要显示“照片”的位置上单击鼠标左键,被“拍摄”的“照片”就立即粘贴过来了。
在 Sheet2 中调整“照片”的各种格式,粘贴到 Sheet1 中的内容同步发生变化,而且因
为插入的的确是一幅自动更新的图像文件,所以,“ 图片”工具栏对这个照片也是有效的
作者在此提供另一种方法:先复制要实现同步链接的图片,然后选中要另存的区域,按住
SHIFT 键的同时选中编辑菜单中的粘贴链接图片,这样达到的效果是同样的,也会即时更新。
431
…………………………………………………………Page 432……………………………………………………………
放大 USERFORM 幕相同大小
这样可以
Private Sub UserForm_Initialize()
Application。WindowState = xlMaximized
With Me
。Top = Application。Top
。Left = Application。Left
。Height = Application。Height
。Width = Application。Width
End With
End Sub
如何用 excel 做双对数坐标图
你可以先按一般刻度坐标作图;然后右击图表区的网格线;在右键菜单中选择〃网格线格式〃;然
后选择对数刻度即可。
使用 excel 拨接连上网
以下宏可以实现拨号连接上网:
Declare Function RasEnumEntries Lib 〃RasApi32。DLL〃 Alias 〃RasEnumEntriesA〃 (ByVal
reserved As String; ByVal lpszPhonebook As String; lprasentryname As Any; lpcb As Long;
lpcEntries As Long) As Long
Const RAS_MAXENTRYNAME = 256
Type RASENTRYNAME
dwSize As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Sub 连线项目()
Dim s As Long; l As Long; ln As Long; ab As String
Dim R(255) As RASENTRYNAME
R(0)。dwSize = LenB(R(0))
s = RAS_MAXENTRYNAME * R(0)。dwSize
Call RasEnumEntries(vbNullString; vbNullString; R(0); s; ln)
If ln = 0 Then
MsgBox 〃无拨接网路帐号!〃
Else
MsgBox 〃已找到拨接网路帐号!〃
For l = 0 To ln 1
ab = StrConv(R(l)。szEntryName(); vbUnicode)
MsgBox 〃拨接网路名称 : 〃 & Left(ab; InStr(ab; Chr(0)) 1)
Next
End If
End Sub
432
…………………………………………………………Page 433……………………………………………………………
获取硬盘的序列号
Sub xiaogang() '获取硬盘的序列号
Dim drive
drive = 〃d:〃
MsgBox UCase(Replace(drive; 〃:〃; 〃〃)) + 〃 盘 的 序 列 号 是 〃 +
Format(CreateObject(〃Scripting。FileSystemObject〃)。GetDrive(drive)。SerialNumber)
End Sub
返回用户名
Public Declare Function GetUserName Lib 〃advapi32。dll〃 _
Alias 〃GetUserNameA〃 (ByVal lpBuffer As String; nSize As Long) As Long
Function ReturnUserName() As String
' returns the NT Domain User Name
Dim rString As String * 255; sLen As Long; tString As String
tString = 〃〃
On Error Resume Next
sLen = GetUserName(rString; 255)
sLen = InStr(1; rString; Chr(0))
If sLen 》 0 Then
tString = Left(rString; sLen 1)
Else
tString = rString
End If
On Error GoTo 0
ReturnUserName = UCase(Trim(tString))
End Function
将 UserForm 与 Excel 分开
Option Explicit
Private Declare Function SetWindowPos Lib 〃user32〃 (ByVal hwnd As Long; ByVal
hWndInsertAfter As Long; ByVal X As Long; ByVal Y As Long; ByVal cx As Long; ByVal cy As
Long; ByVal wFlags As Long) As Long
Private Declare Function FindWindow Lib 〃user32〃 Alias 〃FindWindowA〃 (ByVal lpClassName
As String; ByVal lpWindowName As String) As Long
Private Declare Function ClipCursor Lib 〃user32〃 (lpRect As Any) As Long
Private Declare Function SetForegroundWindow Lib 〃user32〃 (ByVal hwnd As Long) As Long
Const ID = 〃123〃
Private Sub mandButton1_Click()
If TextBox1 = ID Then
Unload UserForm1
433
…………………………………………………………Page 434……………………………………………………………
Exit Sub
Else
UserForm1。Height = UserForm1。Height 30
UserForm1。Width = UserForm1。Width 30
TextBox1 = 〃〃
TextBox1。SetFocus
End If
If UserForm1。Height 《 80 Then
MsgBox 〃不知道密碼就不要再撐了!按〃〃X〃〃離開吧!〃
End If
End Sub
Private Sub mandButton2_Click()
TextBox1 = 〃〃
TextBox1。SetFocus
End Sub
Private Sub UserForm_Initialize()
Application。EnableCancelKey = xlDisabled
SetWindowPos hWndForm; …1; 0&; 0&; 0&; 0&; 3 '讓視窗保持最上層
Call SetForegroundWindow(hWndForm) '讓視窗取得焦點
End Sub
Function hWndForm() As Long
hWndForm = FindWindow(〃ThunderDFrame〃; UserForm1。Caption) 'UserForm
End Function
Private Sub UserForm_QueryClose(Cancel As Integer; CloseMode As Integer)
If Not TextBox1 = ID Then
ThisWorkbook。Saved = True
ThisWorkbook。Close
End If
SetWindowPos hWndForm; …2; 0&; 0&; 0&; 0&; 3
Application。EnableCancelKey = xlInterrupt
End Sub
如何用 API 获得当前登录用户
Option Explicit
Private Declare Function GetUserName Lib 〃advapi32。dll〃 Alias 〃GetUserNameA〃 _
(ByVal lpBuffer As String; _
nSize As Long) As Long
Sub Get_User_Name()
434
…………………………………………………………Page 435……………………………………………………………
Dim lpBuff As String * 25
Dim ret As Long; UserName As String
ret = GetUserName(lpBuff; 25)
UserName = Left(lpBuff; InStr(lpBuff; Chr(0)) 1)
MsgBox UserName
End Sub
怎样才能实现在输入重复的数据时自动跳到重复处提示呢
方法 1:在数据/有效性/ 自定义中输入此公式: =COUNTIF(A:A;A1)=1 当输入相同号码时;会拒
绝输入。
方法 2 :Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target。Column = 1 Then
If Target。value 〃〃 Then
Set c = Sheet1。Range(〃A1:A〃 & Target。Offset(…1; 0)。Row)。Find(Target。value; LookIn:=xlval
ue; Lookat:=xlWhole)
If Not c Is Nothing Then
MsgBox 〃该号码已有了〃
c。Select
Target。value = 〃〃
End If
End If
End If
End Sub
用公式表示当前单元格所在行的第一列的值
解答:cells(所在行行号,1)。value 或者用公式=INDIRECT(〃a〃&ROW())
怎样将列号,转变为对应的字母
如:列号 9,对应的字母应该是〃I〃;列号 27 ,对应的字母应该是〃AA〃。
解答:Function ColumnLetter(ColumnNumber As Integer) As String
If ColumnNumber 《 1 Or ColumnNumber 》 256 Then
MsgBox 〃Invalid Column Number〃
Exit Function
ElseIf ColumnNumber 》 26 Then
ColumnLetter = Chr(Int((ColumnNumber 1) / 26) + 64) & _
Chr(((ColumnNumber 1) Mod 26) + 65)
Else
ColumnLetter = Chr(ColumnNumber + 64)
End If
End Function
435
…………………………………………………………Page 436……………………………………………………………
EXCEL 能否按照单元格内文字的颜色排序
EXCEL 能否按照单元格内文字的颜色排序,或把相同颜色的行集中到一起显示。
解答:方法一,1。以VBA 判斷 colorindex,加輔助欄實現;2。不以程式輔助要實現………》
不可能。
方法二,不用 VBA 也可以的;可用 get。cell(24) EXCEL 宏函数定义名称;辅助列还是需
要的。
怎么能让一个加载宏监控所有打开的 excel 文件
我们可以在 thisworkbook_open 或 sheet1_activate 中加入自己的代码从而监视本文件中的各
个事件,执行指定的代码。但如果你编写的是一个加载宏,你所要监视的文件就不单单是当
前的文件了,而是所有打开的文件。但加载宏在后台运行时,用户可能会新打开或关闭文件
等执行各种操作,从而可能会出现错误。
为了实现加载宏在后台对所有操作进行监控,我把 Excel 帮助翻个底朝天,终于实现了这种效
果。这几天看到有些朋友也存在这中问题,将自己的一点心得拿出来与大家分享。
要实现这种效果,首先要定义一个 Application 类
在 VBA 项目中添加一个类模块 AppEventCls ,进行声明:
Public WithEvents App As Application
这时在代码编辑窗口上面的对象下拉框中就多出了一个新的对象“App” ,选中“App” ,右边的事
件下拉框中可以看到对应的事件“NewWorkbook” ,“SheetActivate”等,哈!这就是我们所要的!
选中“NewWorkbook” ,在代码编辑窗口中出现:
Private Sub App_NewWorkbook(ByVal Wb As Workbook)
End Sub
添加代码:
MsgBox 〃Hey! You opened a new workbook!〃
现在可以执行了吗?噢,还要等一下,我们必须先定义一个属于这个类的对象。
在项目中添加一个新的模块
添加对象的定义
Dim MyApp As New AppEventCls
在自动运行过程中指定对象
Public Sub Auto_Open()
Set MyApp。App = Application
End Sub
将文件存为加载宏,如“ControlApp。xla” ,然后就可以欣赏自己的成果了!
关闭此文件,然后加载刚保存的加载宏。打开一个文件试试。
在类模块