精华内容
下载资源
问答
  • VBA 字符串函数&转换函数

    万次阅读 2018-12-05 16:58:09
    1,vba字符串函数列表: Trim(string) 去掉string左右两端空白 Ltrim(string) 去掉string左端空白 Rtrim(string) 去掉string右端空白 Len(string) 计算string长度 Left(string, x) 取string左段x个字符组成...

    1,vba字符串函数列表:

    Trim(string)          去掉string左右两端空白

    Ltrim(string)         去掉string左端空白

    Rtrim(string)         去掉string右端空白

    Len(string)           计算string长度

    Left(string, x)       取string左段x个字符组成的字符串

    Right(string, x)      取string右段x个字符组成的字符串

    Mid(string, start,x) 取string从start位开始的x个字符组成的字符串

    Ucase(string)         转换为大写

    Lcase(string)         转换为小写

    Space(x)              返回x个空白的字符串

    Asc(string)           返回一个integer,代表字符串中首字母的字符代码

    Chr(charcode)          返回string,其中包含有与指定的字符代码相关的字符

    2,VBA转换函数列表:

    CBool(expression)      转换为Boolean型

    CByte(expression)     转换为Byte型

    CCur(expression)      转换为Currency型

    CDate(expression)   转换为Date型

    CDbl(expression)      转换为Double型

    CDec(expression)      转换为Decemal型

    CInt(expression)      转换为Integer型

    CLng(expression)      转换为Long型

    CSng(expression)      转换为Single型

    CStr(expression)      转换为String型

    CVar(expression)      转换为Variant型

    Val(string)          转换为数据型

    Str(number)           转换为String


    3,VBA时间函数:
    Now       返回一个Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。

    Date     返回包含系统日期的Variant (Date)。

    Time      返回一个指明当前系统时间的Variant (Date)。

    Timer     返回一个Single,代表从午夜开始到现在经过的秒数。

    TimeSerial(hour, minute, second)返回一个Variant (Date),包含具有具体时、分、秒的时间。

    DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])返回Variant (Long)的值,表示两个指定日期间的时间间隔数目

    Second(time)返回一个Variant (Integer),其值为0到59之间的整数,表示一分钟之中的某个秒

    Minute(time)返回一个Variant (Integer),其值为0到59之间的整数,表示一小时中的某分钟

    Hour(time)返回一个Variant (Integer),其值为0到23之间的整数,表示一天之中的某一钟点

    Day(date)返回一个Variant (Integer),其值为1到31之间的整数,表示一个月中的某一日

    Month(date)返回一个Variant (Integer),其值为1到12之间的整数,表示一年中的某月

    Year(date)返回Variant (Integer),包含表示年份的整数。

    Weekday(date, [firstdayofweek])返回一个Variant (Integer),包含一个整数,代表某个日期是星期几


    4,VBA获取文件列表:
    Dir[(pathname[, attributes])];pathname可选参数,用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串(""); attributes可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配pathname但不包含属性的文件。


    5,VBA删除文件:
    Killpathname从磁盘中删除文件, pathname参数是用来指定一个文件名

    RmDirpathname从磁盘中删除删除目录,pathname参数是用来指定一个文件夹


    6,用VBA打开文件:
    Openpathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]能够对文件输入/输出(I/O)。

    pathname必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。

    mode必要。关键字,指定文件方式,有Append、Binary、Input、Output、或Random方式。如果未指定方式,则以Random访问方式打开文件。

    access可选。关键字,说明打开的文件可以进行的操作,有Read、Write、或Read Write操作。

    lock可选。关键字,说明限定于其它进程打开的文件的操作,有Shared、Lock Read、Lock Write、和Lock Read Write操作。

    filenumber必要。一个有效的文件号,范围在1到511之间。使用FreeFile函数可得到下一个可用的文件号。reclength可 选。小于或等于32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。

    说明对文件做任何I/O操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行I/O之用,并决定缓冲区所使用的访问方式。如果 pathname指定的文件不存在,那么,在用Append、Binary、Output、或Random方式打开文件时,可以建立这一文件。如果文件已 由其它进程打开,而且不允许指定的访问类型,则Open操作失败,而且会有错误发生。如果mode是Binary方式,则Len子句会被忽略掉。

    重要在Binary、Input和Random方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在Append和Output方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件


    7,VBA读入文件:
    Input#filenumber, varlist从已打开的顺序文件中读出数据并将数据指定给变量

    Get[#]filenumber, [recnumber], varname将一个已打开的磁盘文件读入一个变量之中。


    8,写入文件:
    Write#filenumber, [outputlist]将数据写入顺序文件

    Print#filenumber, [outputlist]将格式化显示的数据写入顺序文件中

    Put[#]filenumber, [recnumber], varname将一个变量的数据写入磁盘文件中。


    9,VBA关闭文件:
    Close[filenumberlist]关闭Open语句所打开的输入/输出(I/O)文件

    注意 如果今后想用Input #语句读出文件的数据,就要用Write #语句而不用Print #语句将数据写入文件。因为在使用Write #时,将数据域分界就可确保每个数据域的完整性,因此可用Input #再将数据读出来。使用Write #还能确保任何地区的数据都被正确读出。Write与Print #语句不同,当要将数据写入文件时,Write #语句会在项目和用来标记字符串的引号之间插入逗号。Write #语句在将outputlist中的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13) + Chr(10))。
    --------------------- 
    作者:nj198624 
    来源:CSDN   
    原文:https://blog.csdn.net/nj198624/article/details/8160404 

    展开全文
  • vba 转换多种格式日期

    千次阅读 2019-11-29 22:21:17
    需要把里面日期一栏修改为yyyymmdd形式,表中的日期数据也就是有三种 1、2019/1/9,但是设置了单元格的日期格式,显示为2019年1月9日,如第1行。 2、2017年6月20日,直接就是文本的2017年6月20日,如第14行。 3、...

    版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

    今天上班的时候需要处理一张表:

    需要把里面日期一栏修改为yyyymmdd形式,表中的日期数据也就是有三种
    1、2019/1/9,但是设置了单元格的日期格式,显示为2019年1月9日,如第1行。
    2、2017年6月20日,直接就是文本的2017年6月20日,如第14行。
    3、2017.2.23,如第18行
    三种日期数据格式在原表中交错的,总共有几千行,如果只有那20几行我也就手动修改了,几千行太累了,只有祭出vba了。
    按照这三种不同的数据分别处理即可:

    Sub ??1()
    '
    ' ??1 ??
    '
    Dim i As Integer
    Dim fsrq As String
    Dim fsrq2 As String
    
    Dim pos1 As Integer
    Dim pos2 As Integer
    Dim pos3 As Integer
    
    Dim y As String
    Dim m As String
    Dim d As String
    
    For i = 1 To 26
        fsrq = Sheets("sheet1").Range("E" & i).Value
        If InStr(fsrq, "??") Then
             pos1 = InStr(fsrq, "??")
             pos2 = InStr(fsrq, "??")
             pos3 = InStr(fsrq, "??")
        
            y = Left(fsrq, pos1 - 1)
            m = Mid(fsrq, pos1 + 1, pos2 - pos1 - 1)
            d = Mid(fsrq, pos2 + 1, pos3 - pos2 - 1)
            
            If Len(m) = 1 Then m = "0" & m
            If Len(d) = 1 Then d = "0" & d
            
            fsrq2 = y & m & d
        ElseIf InStr(fsrq, ".") Then
            pos1 = InStr(fsrq, ".")
            pos2 = InStr(pos1 + 1, fsrq, ".")
        
            y = Left(fsrq, pos1 - 1)
            m = Mid(fsrq, pos1 + 1, pos2 - pos1 - 1)
            d = Right(fsrq, Len(fsrq) - pos2)
            
            If Len(m) = 1 Then m = "0" & m
            If Len(d) = 1 Then d = "0" & d
            
            fsrq2 = y & m & d
        Else
            fsrq = Format(fsrq, "yyyymmdd")
            fsrq2 = Replace(fsrq, "/", "")
        End If
         Sheets("sheet1").Range("F" & i).Value = fsrq2
    Next
    '
    End Sub

    运行后的效果:

    可见格式如 2019/1/9 的数据显示有问题。如果双击########的数据,也会显示正确:

    显然不是我们需要的,查看单元格格式,可以看到excel把这项仍然处理为日期,这时候想起我之前删除的F列也是日期。
    如果用现在的代码,那么两个方法可以解决:1、将F列先修改格式为文本;2、删除F列,这样新的F列就没有日期格式。然后在运行代码。
    当然我们更可以直接用代码解决,修改后的代码如下:

    Sub ??1()
    '
    ' ??1 ??
    '
    Dim i As Integer
    Dim fsrq As String
    Dim fsrq2 As String
    
    Dim pos1 As Integer
    Dim pos2 As Integer
    Dim pos3 As Integer
    
    Dim y As String
    Dim m As String
    Dim d As String
    
    For i = 1 To 26
        fsrq = Sheets("sheet1").Range("E" & i).Value
        If InStr(fsrq, "??") Then
             pos1 = InStr(fsrq, "??")
             pos2 = InStr(fsrq, "??")
             pos3 = InStr(fsrq, "??")
        
            y = Left(fsrq, pos1 - 1)
            m = Mid(fsrq, pos1 + 1, pos2 - pos1 - 1)
            d = Mid(fsrq, pos2 + 1, pos3 - pos2 - 1)
            
            If Len(m) = 1 Then m = "0" & m
            If Len(d) = 1 Then d = "0" & d
            
            fsrq2 = y & m & d
        ElseIf InStr(fsrq, ".") Then
            pos1 = InStr(fsrq, ".")
            pos2 = InStr(pos1 + 1, fsrq, ".")
        
            y = Left(fsrq, pos1 - 1)
            m = Mid(fsrq, pos1 + 1, pos2 - pos1 - 1)
            d = Right(fsrq, Len(fsrq) - pos2)
            
            If Len(m) = 1 Then m = "0" & m
            If Len(d) = 1 Then d = "0" & d
            
            fsrq2 = y & m & d
        Else
            fsrq = Format(fsrq, "yyyymmdd")
            fsrq2 = Replace(fsrq, "/", "")
        End If
         Sheets("sheet1").Range("F" & i).NumberFormatLocal = "@"
         Sheets("sheet1").Range("F" & i).Value = fsrq2
    Next
    '
    End Sub

    只需要添加一行代码: Sheets("sheet1").Range("F" & i).NumberFormatLocal = "@",让单元格格式为文本。
    所有日期都可以转换成功了,运行后如下:


    都是简单的vba语句,也许有朋友用得上

    展开全文
  • 字符串类型的 2017.1.1 转换成 日期类型 2017/1/1 应该怎么做啊
  • Str函数将数值转换字符串,即返回一个代表一个数值的字符串,其语法为:Str(number)CStr函数将数值表达式转换字符串,其语法为:CStr(mynumberExpression)注意:当一个数值转换成字符串时,总会在其前面保留一个...

    Str函数将数值转换为字符串,即返回一个代表一个数值的字符串,其语法为:

    Str(number)

    CStr函数将数值表达式转换为字符串,其语法为:

    CStr(mynumberExpression)

    注意:当一个数值转换成字符串时,总会在其前面保留一个空位来表示正负,即字符串的第一位一定是空格或正负号,Str将英文句号(.)作为有效的小数点。

    演示代码:

    Sub StrTranfomationDemo()

    Dim myDouble As Double

    myDouble = 234.823

    Debug.Print "Str:"

    Debug.Print "Str:"

    Debug.Print "CStr:"

    End Sub

    运行结果

    Str:

    Str:

    CStr:<234.823>

    二、字符型数值转化为数值型数据

    Val函数可以将包含数值的字符型数据转化为Double(双精度)数值型数据类型,其语法为:

    Val(string)

    演示代码1:

    Sub ShowFormatVal()

    Dim num As Double, str As String

    str = Format(Now, "Short Time")

    num = Val(str)

    ‘如果现在的时间是 4:31 PM,下面语句展示的结果为: 16:31

    Debug.Print str, num

    End Sub

    演示代码2:

    Sub TransformStr2Int()

    Dim num As Double, str As String, tmp As String

    ‘ A1单元格中的数据为 0.8051

    str = ThisWorkbook.Worksheets("Sheet1").Range("A1")

    MsgBox "str: " & str

    tmp = Right(str, Len(str) - 1)

    MsgBox "tmp: " & tmp

    num = Val(tmp) + 1  ‘ 字符串转数字

    MsgBox "num: " & num

    MsgBox Hex(num)   ‘ 十进制转换成十六进制数

    End Sub

    【应用】

    字符型数值是不能进行四则运算的,只能通过Val函数将其转换后才能使用。

    可以将8进制、16进制等转化为10进制数,如,Val(&o77)(8进制)、Val(&HFF)(16进制)分别转化为十进制的63和255

    展开全文
  • * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss * 将短时间格式时间转换为字符串 yyyy-MM-dd * 将短时间格式时间转换为字符串 yyyy年MM月dd日 ...
  • 1.数据库里面存储的字段日期字符串类型 如下图: 2. 数据存储的格式如下: 3.页面需要展示的格式如下: 4.解决处理方式如下:  CONCAT(CONCAT(left(b.stateDate,4),'-',substring(b.stateDate,5,2)),'...

    1.数据库里面存储的字段日期为字符串类型

    如下图:

    2. 数据存储的格式如下:

    3.页面需要展示的格式如下:

    4.解决处理方式如下:

     CONCAT(CONCAT(left(b.stateDate,4),'-',substring(b.stateDate,5,2)),'-',substring(b.stateDate,7,2))stateDate

     

    ps:至于为啥会有这么奇葩的需求或者设计呢!反正各种扯皮,我们自己解决就好!

    展开全文
  • VBA字符串处理大全-from EH

    万次阅读 2017-06-22 09:54:45
    VBA字符串处理大全 转载出处 1 VBA中的字符串 2 VBA中处理字符串的函数  2.1 比较字符串  2.2 转换字符串  2.3 创建字符串  2.4 获取字符串的长度  2.5 格式化字符串  2.6 查找字符串  2.7 提取...
  • CBool(expression) 转换为Boolean型CByte(expression) 转换为Byte型CCur(expression) 转换为Currency型CDate(expression) 转换为Date型CDbl(expression) 转换为Double型CDec(expression)
  • 使用函数:Mid Mid(string, start, length)  Fields!Prod_i_c_date.Value='20110101' Mid(Fields!Prod_i_c_date.Value,1,4)+"-"+Mid(Fields!Prod_i_c_date.Value,5,2)+"-"+Mid...Prod_i_c_date.V
  • VBA字符串处理函数1

    2012-03-02 10:09:44
    1 VBA中的字符串 VBA不仅可以处理数字,也可以处理文本(字符串)。VBA提供了两类字符串: 一类为固定长度的字符串,声明时包含指字的字符数。例如,下面的语句 Dim strFixedLong As String*100 声明字符串变量后...
  • VBA字符串函数

    万次阅读 2010-11-03 12:57:00
    ,则根据系统的缺省码页将字符串转换成 Unicode ;设置为 vbFromUnicode 或 128 ,则将字符串由 Unicode 转换系统的缺省码页。 在将 ANSI 格式的 Byte 数组转换字符串时,应使用 StrConv 函数;转换 Unicode ...
  • VBA 字符串

    2015-01-13 23:59:00
    如果将参数conversion设置为vbUpperCase或1,则将字符串转换成大写;设置为vbLowerCase或2,则将字符串转换成小写;设置为vbProperCase或3,则将字符串中每个字的开头字母转换大写;设置为vbUnicode或64,则根据...
  • VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归纳的几点用法,希望对学习VBA有所裨益。Format(值,格式(可选...
  • 时间类型转化成字符串(年月日时分秒). 参数: date- 需要转化的时间 返回: 时间字符串(yyyy-MM-dd HH:mm:ss) /** * 时间类型转化成字符串(年月日时分秒). * @param date 需要转化的时间 ...
  • VBA字符串处理

    千次阅读 2013-11-15 16:38:21
    转换字符串  2.3 创建字符串  2.4 获取字符串的长度  2.5 格式化字符串  2.6 查找字符串  2.7 提取字符/字符串  2.8 删除空格  2.9 返回字符代码  2.10 返回数值代表的相应字符  2.11 使用字节的函数
  • VBA 字符串处理

    2013-09-09 17:44:00
    1 VBA中的字符串 ...转换字符串 2.3 创建字符串 2.4 获取字符串的长度 2.5 格式化字符串 2.6 查找字符串 2.7 提取字符/字符串 2.8 删除空格 2.9 返回字符代码 ...
  • sql字符日期

    千次阅读 2019-01-24 15:24:41
    WHERE CONVERT (DATE, zr, 111) &gt; CONVERT (DATE ,?, 111) AND CONVERT (DATE, zr, 111) &...1、日期时间转字符串 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CO...
  • 1:工具类——本例的核心,其中有两点注意的地方,一是使用了严格转换方式,二是将转换成日期转换成字符串和原字符串进行了二次比较 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java....
  • VBA中的数据类型转换

    千次阅读 2020-11-24 23:47:38
    VBA中的数据类型转换  在VBE中打开对象浏览器,按照下图操作: 找到VBA库并输入Conversion(转换)找到该模块,里面提供了数据转换函数。  VBA提供了两套内置的数据类型转换函数,第一组包含Int、 CVDate和Str,这是...
  • VBA,字符串处理大全

    万次阅读 2008-02-04 12:23:00
    1 VBA中的字符串2 VBA中处理字符串的函数 2.1 比较字符串 2.2 转换字符串 2.3 创建字符串 2.4 获取字符串的长度 2.5 格式化字符串 2.6 查找字符串 2.7 提取字符/字符串 2.8 删除空格 2.9 返回字符代码 ...
  • 1,获取系统时间方法一 String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"...// 注:把time转date Date date= sdf.parse(time ); // 另外HH代表24小时,hh12小时  2,获取系统时间方...
  • VBA之正则表达式(5)-- 中文字符

    千次阅读 2019-03-10 11:07:46
    CJK字符集中从0x4E00到0x9FA5 的连续区域,包含了 20902 个来自于中国、韩国、日本的汉字,涵盖了多数中文字符,可以说CJK是GB2312-80和BIG5等字符集的超集。一般情况下使用`[一-龥]`匹配汉字就足够了。由于输入龥字...
  • VBA基础语法:类型转换函数

    千次阅读 2020-01-02 13:34:55
    目录 ...CDate 函数示例此示例使用 CDate 函数将字符串转换为 Date。通常,建议不要将日期和时间硬编码为字符串(如此示例中所示)。请改为使用日期文字和时间文字,如 #2/12/1969# 和 #4:45:2...
  • yyyyMMdd这样格式的字符串如何转datetime: App:DateTime.ParseExact("20080808", "yyyyMMdd", Thread.CurrentThread.CurrentCulture) Web:DateTime.ParseExact(EventTimeHourStart, "yyyyMMdd", System.Globalizat...
  • VBA中的字符串处理

    万次阅读 2011-11-16 11:43:18
     2.2 转换字符串  2.3 创建字符串  2.4 获取字符串的长度  2.5 格式化字符串  2.6 查找字符串  2.7 提取字符/字符串  2.8 删除空格  2.9 返回字符代码  2.10 返回数值代表的相应字符  2.11
  • VBA中处理字符串

    万次阅读 2010-08-29 09:43:00
    目录 1 VBA中的字符串 2 VBA中处理字符串的函数  2.1 比较字符串  2.2 转换字符串  2.3 创建字符串  2.4 获取字符串的长度  2.5 格式化字符串  2.6 查找字符串...

空空如也

空空如也

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

vba字符串转换成日期