精华内容
下载资源
问答
  • Excel VBA 函数返回值

    万次阅读 2020-02-11 13:29:52
    Excel VBA 函数返回值 Sub 定义一个过程 VB的函数定义格式与C有很大区别: 格式: Sub 过程名(参数列表 ... ) 过程体 End Sub Function 定义一个函数 官方文档 ???? Microsoft Docs | 编写 Function 过程 Function...

    Excel VBA 函数返回值

    Sub 定义一个过程

    VB的函数定义格式与C有很大区别:
    格式:

    Sub 过程名(参数列表 ... )
    	过程体
    End Sub
    

    Function 定义一个函数

    官方文档 🚀 Microsoft Docs | 编写 Function 过程

    Function 函数名(参数列表 ... )
    	函数体
    	函数名 = 返回值
    End Function
    

    实例代码

    Sub Main() 
     temp = Application.InputBox(Prompt:= _ 
     "Please enter the temperature in degrees F.", Type:=1) 
     MsgBox "The temperature is " & Celsius(temp) & " degrees C." 
    End Sub 
     
    Function Celsius(fDegrees) 
     Celsius = (fDegrees - 32) * 5 / 9 
    End Function
    

    调用Sub过程或者Function函数

    调用函数时,有两种形式:

    1. 可以直接将参数放在函数名后,英文逗号 ‘,’ 作为参数分隔符,不需要加圆括号。
      此种调用方式,将舍弃函数返回值。
    Sub Main() 
     MultiBeep 56 
     Message 
    End Sub 
     
    Sub MultiBeep(numbeeps) 
     For counter = 1 To numbeeps 
     Beep 
     Next counter 
    End Sub 
     
    Sub Message() 
     MsgBox "Time to take a break!" 
    End Sub
    
    1. 使用类c语言的方式,参数后加圆括号,用以包含参数。
    Sub Main() 
     Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3") 
     HouseCalc 99800, 43100 
     Call HouseCalc(380950, 49500) 
    End Sub 
     
    Sub HouseCalc(price As Single, wage As Single) 
     If 2.5 * wage <= 0.8 * price Then 
     MsgBox "You cannot afford this house." 
     Else 
     MsgBox "This house is affordable." 
     End If 
    End Sub
    
    1. 函数名前,可加Call关键字,亦可省略。

    References:

    Microsoft Docs | Calling Sub and Function procedures

    展开全文
  • vba shell 返回值

    千次阅读 2019-09-29 21:09:57
    sub Sample1() Dim WSH, wExec, sCmd As String, Result As String Set WSH = CreateObject("WScript.Shell") ''(1) ''(2) Set wExec = WSH.Exec("xcopy /?") ''(3)...

     

    sub Sample1()
        Dim WSH, wExec, sCmd As String, Result As String
        Set WSH = CreateObject("WScript.Shell")         ''(1)
                  ''(2)
        Set wExec = WSH.Exec("xcopy /?")    ''(3)
        
        Result = wExec.StdOut.ReadAll                   ''(5)
        MsgBox Result
        Set wExec = Nothing
        Set WSH = Nothing
    End Sub

    http://club.excelhome.net/thread-185905-1-1.html 9楼

    http://www.excelba.com/Art/Html/370.html

    转载于:https://www.cnblogs.com/yiguxianyun/p/7088032.html

    展开全文
  • 1 inputbox()函数值 1.1inputbox() 的返回值 inputbox()的返回值,... 如果用户单击 Cancel,则此函数返回一个长度为零的字符串 ("")。 2 inputbox的后续处理 2.1把inputbox返回的值,处理为数字等 如果是...

    1 inputbox()函数值

     

    1.1inputbox() 的返回值

    • inputbox()的返回值,String 类型
    • 在一对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的 String。
    • 如果用户单击 Cancel,则此函数返回一个长度为零的字符串 ("")。

     

    2  inputbox的后续处理

    2.1 把inputbox返回的值,处理为数字等

    • 如果是一个语句默认会返回void? false
    • 如果是字符串相加是连接
    • int()  cint()  val() 功能类似,都可以把  “数字类字符串” 转成 数字

     

    Sub cs2()
    
    x1 = InputBox("请输入一个数字")
    x2 = InputBox("请输入一个数字")
    
    Debug.Print "x1+x2=" & x1 + x2
    Debug.Print "x1+x2=" & Val(x1) + Val(x2)
    Debug.Print "x1+x2=" & Int(x1) + Int(x2)
    Debug.Print "x1+x2=" & CInt(x1) + CInt(x2)
    Debug.Print "x1+x2=" & Sum = Val(x1) + Val(x2)
    
    End Sub
    

     

     

     

    别人写的例子

    Sub Judge()
    Dim x, y As Integer
    x = GetNum("X")
    y = GetNum("Y")
    If x < y Then
    MsgBox "X < Y"
    Else
    MsgBox "X >= Y"
    End If
    End Sub
    Function GetNum(s) As Integer
    Dim str As String
    Do While str = ""
    str = InputBox("", "请输入数" + s)
    If Not IsNumeric(str) Then
    MsgBox "你输入的不是整数"
    str = ""
    Else
    GetNum = CInt(str)
    End If
    Loop
    End Function

     

    3 inputbox 可以同时要求输入多个参数吗?

     

    3.1 要求输入参数必须是有分隔符

    • 输入多个参数,中间有 , 分隔
    • 但是这个不能限制玩家不按要求输入
    • 如果按要求输入可以按 split() 分隔

     

    Sub cs3()
    
    i1 = InputBox("请输入")
    
    arr1 = Split(i1, ",")
    
    For Each i In arr1
      Debug.Print i
    Next
    
    End Sub
    

     

     

     

    inputbox() 函数 和application.inputbox() 方法


    inputbox() 函数
    InputBox(Prompt[,Title][,Default][,Xpos][,Ypos][,Helpfile,Context])
    application.inputbox() 方法
    Object.InputBox(Prompt,Title,Default,Left,Top,HelpFile,HelpContextID,Type)


    inputbox() 函数
    (1)如果同时提供了Helpfile与Context参数,可以按F1键来查看与Context相应的帮助主题,Excel通常会在输入框中自动添加一个帮助(Help)按钮。
    (2)如果单击确定(OK)或按下ENTER键,则InputBox函数返回文本框中的内容;如果单击取消(Cancel),则此函数返回一个长度为零的字符串("")。
    (3)如果要输入多个参数并省略中间的某些参数,则必须在相应位置加入逗号分界符。
    (4)InputBox函数返回的是一个字符串,若需要得到数值,则需要使用Val函数将字符串转换为一个值。


    application.inputbox() 方法
    若使用适当代码的和,则返回多种数据类型。若要显示一个可以接受文本或数字的输入框,则将Type设置为3(即1和2之和,或者数字加上文本);若Type设置为8,那么可以输入一个单元格或单元格区域,或者用鼠标在工作表中的选择某个单元格区域。

    https://blog.csdn.net/ZOU_SEAFARER/article/details/1495674
    https://blog.csdn.net/iamlaosong/article/details/53376336
    http://www.360doc.com/content/18/0611/00/22637415_761312889.shtml

     

     

    Sub ponyma1()
    Dim in2 As Object
    
    in1 = Application.InputBox("请输入数字", "输入窗口", , , , , 1)
    Debug.Print in1 + 1
    
    
    Set in2 = Application.InputBox(prompt:="请选择几个单元格", Title:="输入窗", Type:=8)
    in2.Interior.ColorIndex = 3
    
    End Sub

     

    选择的range区域会变红

     

     

    展开全文
  • 我有一段代码如下麻烦帮忙看看是哪里的问题,运行后写入目标表格的是空值代码如下:DimdalistAsObjectSetdalist=CreateObject("Scripting.Dictionary")Setrs=NewADODB.RecordsetCallc...我有一段代码如下麻烦帮忙看...

    我有一段代码如下麻烦帮忙看看是哪里的问题,运行后写入目标表格的是空值代码如下:DimdalistAsObjectSetdalist=CreateObject("Scripting.Dictionary")Setrs=NewADODB.RecordsetCallc...

    我有一段代码如下麻烦帮忙看看是哪里的问题,运行后写入目标表格的是空值

    代码如下:

    Dim dalist As Object

    Set dalist = CreateObject("Scripting.Dictionary")

    Set rs = New ADODB.Recordset

    Call connectDB

    rs.Open "select A_code,B_code,C_code,D_code,E_code from `" & Codet & "`", conn

    Do While Not rs.EOF()

    dalist(rs(0)) = Array(rs(1), rs(2), rs(3), rs(4), rs(5), rs(6), rs(7), rs(8))

    ' 有检查过单步运行,rs返回数据正常

    rs.MoveNext

    Loop

    For i = 2 To Cells(Rows.Count, "N").End(xlUp).Row

    da = Cells(i, "N").Value

    If dalist.Exists(da) Then

    Cells(i, "O").Resize(5, 1) = dalist(da)

    ' Cells(i, "O").Value = daList(da)

    Else

    Cells(i, "O").Resize(5, 1) = Empty

    ' 检查单步运行发现直接跳到这里,也就是前面的if判断为在dalist中没有找到da,但实际da是存在于数据库中的,也rs单步返回数据也观察到,是不是哪里没对导致字典数据被清空了?

    End If

    Next i

    rs.Close: Set rs = Nothing

    conn.Close: Set conn = Nothing

    展开

    展开全文
  • shell编程与普通的编程语言相比,shell编程可以用来执行一些流程调度以及任务量比较轻的处理流程的处理工具--因为毕竟是系统命令的整合调用,处理的时候,都会产生系统调用,在处理任务量大且比较复杂的流程的任务时...
  • VBA基础知识整理(字典,自定义函数

    千次阅读 多人点赞 2019-05-13 16:40:59
    '1 什么是VBA字典? '字典(dictionary)是一个储存数据的小仓库。共有两列。 '第一列叫key , 不允许有重复的元素。 '第二列是item,每一个key对应一个item,本列允许为重复 'Key item 'A 10 'B 20 ...
  • vba自定义类型返回函数vba自定义类型返回函数vba自定义类型返回函数
  • 1、子程序和函数   1)   如果过程适用于整个应用程序,则范围为公共,否则为私有 如果是静态变量,则过程在反复调用时,其内部变量值仍保持 调用这些过程的方法是 call 过程名 2)option Explicit语句表示 ...
  • 解决方案 VBA implements Reference counting to clean the memory using a "Garbage Collector" When you call a function, it doesn't matter whether this function is private or public. What matters is, if ...
  • Excel的VBA函数,可根据条件返回值数组。 Agruments:valrange-要在数组中返回的值。 测试范围(1到4)-要在条件下测试的值的范围。 第一个测试范围是必须的,其他范围是可选的。 第一个条件是强制性的,其他条件...
  • VBA代码有两种组织形式,一种是过程,另一种就是函数。其实过程和函数有很多相同之处,除了使用的关键字不同之外,还有不同的是: 函数返回值,过程没有。 函数可以在Access窗体,查询中像一般的Access函数那样...
  • 上一篇文章已经学习了Instr()函数,InStrRev()函数正好与Instr()函数相反,查找的方向是相反的。Instr()的查找方向是从左到右,而InStrRev()函数的方向是从右到左。 语法 InStrRev(string1, string2 [,start, ...
  • VBA collection函数回传

    2020-08-29 14:20:43
    VBA collection函数回传参考: https://social.msdn.microsoft.com/Forums/en-US/62bb4c2b-0494-43c3-bb00-be6b40686aa4/vba-function-22914203092223820659-collection?forum=232 **关于VBA集合的使用网上中文资料很...
  • 展开全部1、直接调用或636f70793231313335323631343130323136353331333431373865者call 过程名 call 函数名就可以了,比如Private Sub CommandButton1_Click()MsgBox "你调用了CommandButton1_Click过程"End Sub...
  • Instr函数是十分实用的,它可以查询某个字符...不过Instr函数并非Excel内置的函数,因此,如果要使用Instr函数和Mid函数搭配,那就必须要使用VBA才行。 语法 InStr([start,] string1, string2 [,compare]) 参数 ...
  • 我可以使用result = MacScript(command)函数调用我的Python脚本,在该函数中,我的命令定义如下:command = "do shell script """ & pyPath & "python " & getURLpath & "getURL.py --formula '" _& Latex_Str & "' --...
  • 函数作用:取消隐藏工作表(包括vba Project工程保护的)88 '75.函数作用:删除单元格自定义名称.....................88 '76.函数作用:从文件路径中取得文件名...................89 '77.函数作用:取得一个文件的扩展...
  • 如何使用VBS调用VBA函数

    千次阅读 2020-05-05 22:42:58
    ・截取图片后,截图的图片置于最底层 :调用VBA函数pictureToBack ・Case中的的一些内容,自动截图,并保存到Evidence中 :调用VBA函数 getCaseInfoAsPicture ■VBA的代码 '把图片置于底层 Sub ...
  • MsgBox函数返回值的类型为“数值型”。MsgBo函数的功能是弹出一个对话框,等待用户单击按钮,并返回一个Integer整型值表示用户单击了哪一个按钮。相关推荐:《编程视频》MsgBox函数返回值的类型为“数值型”。...
  • 暂时不适用) Sub VBA小程序_遍历文件夹内所有文件_搜索相关内容() Dim myPath$, myFile$, myPath1$, myPath2$, WB As Workbook, new_book As Workbook, yes_no '这个$ 是相当于定义字符串 '调用函数,获取用户选择...
  • VBA Find函数的常见用法

    万次阅读 2018-05-04 21:47:26
    学习杨老师的全民一起vba课程内容整理:Find语法: Range.Find(What,After,LookIn,LookAt,SearchOrder,SearchDirection,MatchCase,MatchByte,SearchFormat)()What:唯一一个必选参数,含义为需要查询的内容,...
  • 慕莱坞7535251只是将返回值设置为函数名仍然与Java(或其他)语句不完全相同return,因为在java中,return退出函数,如下所示:publicinttest(intx){if(x==1){return1;//exitsimmediately}//stillhere?return0as...
  • 在picture control控件显示本地bmp图片的方法里,使用LoadImage加载bmp图片时,返回值经常为空,解决方法: 1、把bmp图片用画图工具打开,再以bmp格式另存为 2、上述方法行不通,可以用两外的代码代替LoadImage函数 ...
  • VBA编程知识点(10)——Dir函数

    千次阅读 2020-12-20 18:38:54
    VBA编程知识点(10)——Dir函数学习自杨洋老师《全民一起VBA》1. 在VBA中,dir函数可以返回一个文件夹下一个文件的名字(包含后缀)。示例代码:filename = Dir("F:\userdata\Desktop\新建文件夹\")dir后面的参数应该以...

空空如也

空空如也

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

vba函数返回值