精华内容
下载资源
问答
  • VBA设置字符串格式——Format 函数

    千次阅读 2020-01-12 16:50:01
    返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。 语法 Format(expression[, format[, firstdayofweek[, firstweekofyear]]]) Format 函数的语法具有下面几个部分: 部分 ...

    Format 函数

    返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。

    语法

    Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

    Format 函数的语法具有下面几个部分:

    部分说明
    expression必要参数。任何有效的表达式。
    format可选参数。有效的命名表达式或用户自定义格式表达式。
    firstdayofweek可选参数。常数,表示一星期的第一天。
    firstweekofyear可选参数。常数,表示一年的第一周。

    设置值

    firstdayofweek 参数有下面设置:

    常数说明
    vbUseSystem0使用 NLS API 设置。
    VbSunday1星期日(缺省)
    vbMonday2星期一
    vbTuesday3星期二
    vbWednesday4星期三
    vbThursday5星期四
    vbFriday6星期五
    vbSaturday7星期六

    firstweekofyear 参数有下面设置:

    常数说明
    vbUseSystem0使用 NLS API 设置。
    vbFirstJan11从包含一月一日的那一周开始(缺省)。
    vbFirstFourDays2从本年第一周开始,而此周至少有四天在本年中。
    VbFirstFullWeek3从本年第一周开始,而此周完全在本年中。

    说明

    格式化作法
    数字使用预先定义的命名数值格式或创建用户自定义数值格式。
    日期和时间使用预先定义的命名日期/时间格式或创建用户自定义日期/时间格式。
    日期和时间序数使用日期和时间格式或数值格式。
    字符串创建自定义的字符串格式。

    如果在格式化数字时没有指定 formatFormat 会提供与 Str 函数类似的功能,尽管它是国际化的。然而,以 Format 作用在正数上不会保留正负号空间,而以 Str 的话则会。

    如果要格式化一个没有本地化的数值字符串,应该使用一个用户自定义的数值格式,以保证得到需要的外观。

    注意 如果 Calendar 属性设置是Gregorian ,并且format 指定了日期格式,那么,提供的 expression 必须是Gregorian 。如果Visual Basic Calendar 属性设置是 Hijri,则提供的的 expression 必须是Hijri 。

    如果日历是Gregorian,则 format 表达式的意义没有改变。如果日历是Hijri ,则所有的日期格式符号(例如,dddd, mmmm, yyyy )有相同的意义,这些意义只应用于Hijri 日历。格式符号保持英文,用于文本显示的符号(例如,AM 和PM )显示与该符号有关的字符串(英文或阿拉伯数字)。当日历是Hijri 时,一些符号的范围会改变。

    符号范围
    d1-30
    dd1-30
    ww1-51
    mmm显示完整的月份名称(Hijri 月份名称无缩写形式)
    y1-355
    yyyy100-9666

    Format 函数示例

    本示例显示用 Format 函数做格式化输出的不同用法。对于日期分隔号(/),时间分隔号(:),以及 AM/ PM 等文本而言,其真正的显示格式会因计算机上的国际标准不同而有所差异。在开发阶段,日期与时间是以短日期的格式,配合代码的国际标准来显示的。而在运行时,短日期则是根据系统的国际标准而定,而系统的国际标准和代码的国际标准可能并不相同。本示例中是假设国际标准为 English/United States。

    MyTime 及 MyDate 在开发环境下,使用系统的短日期设置显示出来的。

    Dim MyTime, MyDate, MyStr
    MyTime = #17:04:23#
    MyDate = #January 27, 1993#
    
    ' 以系统设置的长时间格式返回当前系统时间。
    MyStr = Format(Time, "Long Time")
    
    ' 以系统设置的长日期格式返回当前系统日期。
    MyStr = Format(Date, "Long Date")
    
    MyStr = Format(MyTime, "h:m:s")    ' 返回 "17:4:23"。
    MyStr = Format(MyTime, "hh:mm:ss AMPM")    ' 返回 "05:04:23 PM"。
    MyStr = Format(MyDate, "dddd, mmm d yyyy")    ' 返回 "Wednesday, Jan 27 1993"。
    ' 如果没有指定格式,则返回字符串。
    MyStr = Format(23)    ' 返回 "23"。
    
    ' 用户自定义的格式。
    MyStr = Format(5459.4, "##,##0。00")    ' 返回 "5,459.40"。
    MyStr = Format(334。9, "###0。00")    ' 返回 "334.90"。
    MyStr = Format(5, "0。00%")    ' 返回 "500.00%"。
    MyStr = Format("HELLO", "<")    ' 返回 "hello"。
    MyStr = Format("This is it", ">")    ' 返回 "THIS IS IT"。

     source:VBA Help

    展开全文
  • VBA转换文件编码到UTF-8

    万次阅读 2016-03-03 15:43:36
    'Excel中VBA转换文件编码到UTF-8 Private Sub ConvFile(InputFile As String, OutputFile As String) Dim ReadStream As Object Set ReadStream = CreateObject("ADODB.Stream") Dim FileContent As Stri
    'Excel中VBA转换文件编码到UTF-8
    Private Sub ConvFile(InputFile As String, OutputFile As String)
     
        Dim ReadStream As Object
        Set ReadStream = CreateObject("ADODB.Stream")
        
        Dim FileContent As String
        
        With ReadStream
            .Type = 2               'adTypeText
            '.Charset = "UNICODE"
            .Charset = "GB2312"     ' ANSI
            '.Charset = "UTF-8"
            .Open
            .LoadFromFile InputFile
            FileContent = .ReadText
            .Close
            
        End With
        
        Set ReadStream = Nothing
        
        
        
        Dim WriteStream As Object
        Set WriteStream = CreateObject("ADODB.Stream")
           
        
        With WriteStream
            .Type = 2               'adTypeText
            .Charset = "UTF-8"
            .Open
            .WriteText FileContent
            .SaveToFile OutputFile, 2  'adSaveCreateOverWrite
            
            .Flush
            .Close
            
        End With
        
        Set WriteStream = Nothing
     
        
    End Sub
    
    
    '调用:
     Dim fileName As String
     fileName = ActiveWorkbook.Path & "\" & "test" & ".xml"
    Call ConvFile(fileName, fileName)

    展开全文
  • VBA 向文件写入简单数据(默认编码为ANSI或者Unicode)

    Sub Test()
         Dim fileSaveName
         Dim i As Integer
         Dim fso, outStream
        '创建文件,并返回路径
         fileSaveName = Application.GetSaveAsFilename("测试文件", fileFilter:="文本文件(*.txt), *.txt")
        '创建写入数据的流
          Set fso = CreateObject("Scripting.FileSystemObject")

          Set outStream = fso.CreateTextFile(fileSaveName, True, False) '第二个参数为设置文件是否可直接覆盖。第三个参数为True时对应的编码

                                                                                                                              '式为Unicode,'为False对应的编码格式为ANSI

        '向文本文件写入内容
        For i = 1 To 20
              outStream.WriteLine (Sheet1.Cells(i, 1) & "-----" & Sheet1.Cells(i, 2))
        Next i
        outStream.Close 

    End Sub

     

    展开全文
  • 用EXCEL VBA制作自动编码,可以根据预先定义字段和设置的自动字段的位数生产编码
  • [VBA]Excel输出utf-8编码格式文件 使用WideCharToMultiByte 遇到问题: 在使用vba输出.xml文件时,如果有汉字或日文出现无法打开。原因VBA生成的文本文件,默认是Gb2312编码。 如何让输出文件格式是utf-8编码??...

    [VBA]Excel输出utf-8编码格式文件 使用WideCharToMultiByte

    遇到问题:

    在使用vba输出.xml文件时,如果有汉字或日文出现无法打开。原因VBA生成的文本文件,默认是Gb2312编码。

    如何让输出文件格式是utf-8编码???

    解决办法:

    ‘API 函数WideCharToMultiByte参数说明
    ‘第一个参数:指定要转换成的字符集代码页,它可以是任何已经安装的或系统自带的字符集,你也可以使用如下所示代码页之一。
    ’ CP_ACP 当前系统ANSI代码页
    ’ CP_MACCP 当前系统Macintosh代码页
    ’ CP_OEMCP 当前系统OEM代码页,一种原始设备制造商硬件扫描码
    ’ CP_SYMBOL Symbol代码页.
    ’ CP_THREAD_ACP 当前线程ANSI代码页,用于Windows 2000及以后版本,我不明白是什么
    ’ CP_UTF7 UTF-7,设置此值时lpDefaultChar和lpUsedDefaultChar都必须为NULL
    ’ CP_UTF8 UTF-8,设置此值时lpDefaultChar和lpUsedDefaultChar都必须为NULL
    ‘第二个参数:指定如何处理没有转换的字符,但不设此参数函数会运行的更快一些,我都是把它设为0。
    ‘第三个参数: 待转换的宽字符串?
    ‘第四个参数:待转换宽字符串的长度,-1表示转换到字符串结尾。
    ‘第五个参数: 接收转换后输出新串的缓冲区?
    ‘第六个参数: 输出缓冲区大小?
    ‘第七个参数: 指向字符的指针?
    ‘第八个参数:开关变量的指针,用以表明是否使用过默认字符,一般设为0。

    Private Declare Function WideCharToMultiByte Lib "kernel32" ( _
            ByVal CodePage As Long, _
            ByVal dwFlags As Long, _
            ByVal lpWideCharStr As Long, _
            ByVal cchWideChar As Long, _
            ByRef lpMultiByteStr As Any, _
            ByVal cchMultiByte As Long, _
            ByVal lpDefaultChar As String, _
            ByVal lpUsedDefaultChar As Long) As Long
    
    Private Const CP_UTF8 = 65001
    Private Sub WriteOut(strPath As String, str As String)
            Dim lBufSize As Long
            Dim lRest As Long
            Dim bUTF8() As Byte
            Dim TLen As Long
    
        TLen = Len(str)
        lBufSize = TLen * 3 + 1
        ReDim bUTF8(lBufSize - 1)
        lRest = WideCharToMultiByte(CP_UTF8, 0, StrPtr(str), TLen, bUTF8(0), lBufSize, vbNullString, 0)
        If lRest Then
            lRest = lRest - 1
            ReDim Preserve bUTF8(lRest)
            Open strPath For Binary As #1
            Put #1, , bUTF8
            Close #1
        End If
    End Sub

    ‘如何使用==================================================Private

    Sub CommandButton1_Click()
    
        Const PATH = "E:\testfile.xml"
        Dim fso
        Set fso = CreateObject("Scripting.FileSystemObject")
    
        '这里建立一个空文件 并不打开他 建完拉到
        fso.CreateTextFile (PATH)
        '把所有的内容都放到这个字符串里
        Dim str As String
        For i = 1 To 50
            Dim test As String
            test = Trim(Worksheets("Sheet1").Range("A" + Trim(i)).Text)
            If Not test = vbNullString Then
                str = str & test & vbCrLf
            End If
        Next
        '不用打开文件 让WriteOut直接去写
        Call WriteOut(PATH, str)
        MsgBox "O K"
    End Sub
    展开全文
  • 常用编码VBA.zip

    2020-03-11 08:45:26
    常用编码VBA宏,包括Base64编码、Quoted-Printable编码、URL编码、UTF8编码、Unicode编码
  • VBa常用编码300句

    2011-02-18 09:12:23
    主要讲的是VBA日常常用的代码,便于编程的人日常查询之用。
  • excel vba 编码转换

    万次阅读 2012-06-07 11:12:40
    1、'UTF转GB---将UTF8编码文字转换为GB编码文字 function UTF2GB(UTFStr) for Dig=1 to len(UTFStr)   '如果UTF8编码文字以%开头则进行转换  if mid(UTFStr,Dig,1)="%" then   'UTF8编码文字大于8则转换为...
  • word vba宏 The goal of this course is to help people who have never written a program before learn to write one. There's no reason why office workers, homemakers, professional engineers and pizza ...
  • vba Excel转化为xml(格式化输出xml)

    热门讨论 2012-03-19 09:06:34
    将Excel表格中的信息按一定规则(如关键字分组)输出为xml文件,一般情况下生成的xml文件用文本形式代开不会有缩进与换行,本工具解决了此问题。本工具中生成的RemotePhonebook.xml是根据department分组,同一...
  • VBA 格式化输出XML(UTF-8无BOM编码)

    千次阅读 2016-08-28 02:37:23
    VBA可以使用MSXML2.Document来创建xml Dom树,先看个简单的例子: Function CreateXml(xmlFile As String) Dim xDoc As Object Dim rootNode As Object Dim header As Object Dim newNode As Object Dim ...
  • I'm using this script to convert any character set or code page (that i'm aware of). This script can also handle large files (over one gigabytes),...
  • 用Excel VBA编码的记忆游戏。 游戏具有4个不同的字段大小,分别为4x4、6x6、8x8或10x10。 它还具有不同的游戏类型,数字,符号,单词和某些混合类型。 游戏还为您提供了将自己的数据添加到游戏中的机会。 它可以是...
  • VBA 编辑器到底用什么字符编码方式,真是越搞越糊涂。 同样的环境(英文WIN7+英文Office),同样的代码,同样的操作方式,不同时间就有不一样的结果。把包含中文注释的代码直接复制到 Notepad++,有时候中文变成...
  • vba 读写文件,utf-8编码格式

    千次阅读 2010-07-28 22:33:00
    vba 读写文件,utf-8编码格式
  • VBA挑战赛 作业#2-VBA编码
  • VBA键码常数

    2018-11-10 14:05:56
    在Access窗体中可用于按下某键后触发相应事件,很实用
  • VBA-Vector是一维数组的自定义实现,可以使编码过程更加舒适。 入门 下载,解压缩,然后将ClassVector.cls导入到您的VBA项目中。 初始化ClassVector新变量,并将标准数组(String,Variant,Double等)转换为此类...
  • 想将图片1中的excel数据转换为图片2中的xml格式,不知道应怎样编写VBA程序,目前已经写出一部分,但是转换出来的xml数据不全,求帮忙给出程序或将下面程序补全: Sub cheliang() Dim fso As Object, sFile As Object...
  • 移除VBA编码保护

    千次阅读 2015-06-22 14:13:41
    新建一个Excel工作簿,Alt+F11 打开VBA编辑器,新建一个模块 ,复制以下代码,注意如提示变量...'移除VBA编码保护 Sub MoveProtect()  Dim FileName As String  FileName = Application.GetOpenFilename("Excel文
  • 第一步:打开excel,按ALT+F11,选择界面出现的插入按钮,选择插入模块并复制下面代码Public Function UrlEncode(ByRef szString As String) As String Dim szChar As String Dim szTemp As String Dim szCode...
  • Word vba常用语句合集

    2018-04-11 10:25:20
    word二次开发常用的语句合集,自己整理的,顺便希望的大家下载
  • VBA编码几个注意点

    千次阅读 2017-04-26 21:24:59
    .ApplyDataLabels ShowValue:=True 必须放在 .SetSourceData 之后申明小数点类型为variant为了让宏执行时不白屏,在语句前后添加 Application.screenUpdating=False/True“参数不可选",给调用的函数少输入了实参....
  • 先打开文件获取列数,将每一列的格式设置为xlTextFormat, 然后再赋值给QueryTable.TextFileColumnDataTypes。 Public Sub ImportCSVAsText() Dim TempWorkbook As Workbook Dim TempWorksheet As Worksheet
  • VBA编码程序(进制的转换)

    千次阅读 2018-05-10 13:21:21
    '二进制代码转换为十六进制代码function c2to16(x) i=1 for i=1 to len(x) step 4 c2to16=c2to16 &amp; hex(c2to10(mid(x,i,4))) next end function '二进制代码转换为十进制代码function c2to10(x) c2...
  • VBA 向文件写入编码为UTF-8的数据

    万次阅读 2017-06-16 19:50:26
    VBA 向文件写入编码为UTF-8的数据
  • 这两天在做一个用vba生成sql文件的工具类,要求编码格式为UTF-8.最后生成的文件是UTF-8带BOM的,在MySQL数据库运行时会报1064错误,查阅了好多文档,最终得以解决。
  • 在Excel表中通过VBA编码,制做了一个小程序,功能是"修改指定文件夹包括子文件中文件后缀名".说明:Excel表的sheel1列A中存放了后缀名,不能删除。否则窗口中的下拉框没有值。该程序的特点是用VBA调用外部批处理代码...
  • 基于CATIA VBA的CAD数据编码实现及应用.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,858
精华内容 1,543
关键字:

vba设置编码格式