VB编程如何打开和关闭EXCEL文件?

VB编程如何打开和关闭EXCEL文件?,第1张

下面所举的例子均假设F盘下有一个名为d.txt的文本文件,若需要尝试这些例子请作相应的改动。

一、用定长的String变量获取文本内容。由于定长String变量支持的下界为65400,所以在打开超过32K字节的文件时超出部分的字节将无法获取: Private   Sub   Command1_Cliack() Dim   sA   As   String   *   65400   '声明定长String变量   Open   "F:\d.txt "   For   Binary   As   #1   '用二进制打开文件 Get   #1,   ,   sA   '用Get语句从文件中获取字节 Text1   =   sA   '显示打开的文件 Close   #1   '关闭文件 End   Sub;

二、先声明一字符串变量,然后用档行空格填充字符串,使樱陪变量大小与文件大小一致,再通过Get语句将文件全部数据存储到变量中,从而达到获取整个文件字节数的目的。

此法可以打开大于32K的文件,但应该注意的是,装载文件的容器必须能装载大于32K的文件,下例用RichTextBox控件显示打开的文件: Private   Sub   Command1_Click()   Dim   sA   As   String Open   "f:\d.txt "   For   Binary   As   #1 sA   =   Space(LOF(1))   '用空格填充sA变量 Get   #1,   ,   sA   '用Get语句获取文件全部内容 RichTextBox1.Text   =   sA Close   #1 End   Sub;

三、用StrConv函数将文件的控制字符串数据和Unicode码之间进行转换,从而达到打开文件的目的。可打开任意大小文件。

再给一个简单例子: Private   Sub   Command1_Click() Open  脊蠢蠢 "f:\d.txt "   For   Input   As   #1 RichTextBox1.Text   =   StrConv(InputB$(LOF(1),   1),   vbUnicode) Close   #1 End   Sub;

四、用Shell语句直接调出Windows的记事本,给个文件名即可轻而易举地打开文本文件。此法适合于打开程序的Readme文件(注意:在可执行文件和要打开的文本文件之间要有空格): Shell   "NotePad.EXE   f:\d.txt ",vbNormalFucus;

五、用RichTextBox控件自身的LoadFile属性打开文件: RichTextBox1.LoadFile   "f:\d.txt ",   rtfText。

1.首先打开excel,选择功能区的视图-宏-录制宏

2.然后在d出框中填写名称及其说明,便于多个宏时进行区分。点击确定。

3.再次点击视图-宏,选择查看宏

4.选择你刚刚添加的宏,点击编辑,就会进入vb编辑器页面

5.在编辑器中编写你想要的功能,(例如截图中的A列第一行填槐毁并写1,A列第二行填写2),保余伍存并关闭。

6.回到excel界面后,视图-宏-停止录制。这时候宏已经制作完成。

7.和第三布一样,选择视图-宏-查看宏,这时候你刚刚制作完成的宏就显示在第一个,点击执行,就会出现效果(A列第一行填写1,A列第二行填写2)。

完成。

vb的语法请自行搜索,或者留言铅迹学习交流~

Const C1 = 10 '连续数调整值

Const C2 = 15 '非连续数调整值

Const S = 10 '设定连续范围

Sub process()

Dim a, i!, j!, d!, n

Range("A1").Sort key1:=Range("A1"), order1:=xlAscending

a = WorksheetFunction.Transpose(Range("A1:A" & [A65536].End(xlUp).Row))

For i = 1 To UBound(a)

    d = a(i) + S

    For j = i To UBound(a)

        If j + 1 > UBound(a) Then Exit For

        If a(j + 1) > d Then Exit For

    Next

    If i = j Then 纳如'非连续数

        a(i) = a(i) - C2

    Else '连续数

        n 和滚= a(i) - C1

        For k = i To j

            a(k) = n

       唤茄余 Next

        i = j

    End If

Next

Range("B1").Resize(UBound(a)) = WorksheetFunction.Transpose(a)

End Sub

效果如图,可下载附件参考


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12393748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存