Tag: vba

传递表函数(excel vba)

我一直在试图将我的工作簿中的工作表传递给一个函数,但似乎没有工作。 function是 Private Sub passToSheet(theData As Variant, Optional mySheet As Worksheet) 我曾经尝试过 Dim mySheet as Worksheet Set mySheet = "Results" 然后调用该函数 passToSheet theData mySheet 但似乎并不奏效。 我真的不知道该怎样才能以正确的方式引用工作表! 任何帮助深表感谢!

VBA粘贴3维数组成表单

我有一个3维数组(5 x 5 x 3),我需要张贴(5 x 5 x 1)到Sheet1,(5 x 5 x 2)到Sheet2,(5 x 5 x 3)到Sheet3。 因为我在3个嵌套for循环中构build这个3维数组,所以我不能使用for循环来访问循环的(5 x 5)部分。 有没有任何标识符告诉excel通过使用(1:end,1:end,1)来索引数组的所有元素,比如在MatLab中? 基本代码如下: Sub practice_2() Dim arr(1 To 5, 1 To 5, 1 To 3) Dim a As Integer Dim x As Integer Dim y As Integer For a = 1 To 3 For x = […]

根据列宽将文本分割成多行

我在Excel VBA中有一个报表生成器,目前工作。 它读取一些input数据,并生成一个格式化的Excel表格作为结果。 这张表的最后一列填有一些自由文本。 现在,有时自由文本不适合最后一列,它太宽了。 由于此报表中所有行的行高都是固定的,因此无法为此列设置range.WrapText=True (要让文本保持可见状态,则必须增加行高度)。 手动(非VBA)解决scheme非常简单:将文本分成几个部分,并将其分散在不同的行上。 例如: A | B |C content |This text is too wide for column B. here |This text fits. | is | | fixed | | 应该转化为 A | B |C content |This text is too | here |wide for column | is |B. | fixed |This text […]

删除列表框上的滚动条

我在vba中使用userForm,我有一个列表框。 我想删除horoz。 从底部滚动条。 有没有办法做到这一点? 我没有在属性框中看到任何选项。

Excel的数组公式是否有编程接口?

例如,假设我有 {={1,2,3,4,5}} 在一个小区里。 有什么方法可以找出该arrays中有多less个元素,以及这些元素是什么? 现在实现@chris neilsen的想法,现在我已经有了一个VBA函数,如下所示 Function rinfo(r As Range) As String With r.CurrentArray rinfo = .Address & ", " & .Rows.Count & ", " & .Columns.Count & ", " & .Value & ", " & .Value2 End With End Function 然而从它的数据看起来不希望,即 $A$29, 1, 1, 1, 1 如果计算工作表中使用的行和列,则Rows.Count和Columns.Count是有意义的。 但是作为数组公式中的数据的指示,没有。

将数组值赋给VBA中的variables会导致我的UDF退出

我似乎无法弄清楚为什么这个UDF正在currentInput = inputArray(i)上退出。 这是相关的代码: Function OrderRange(inputRange As Range) As Variant Dim length As Integer inputHeight = inputRange.Count Dim inputArray As Variant inputArray = inputRange Dim strippedArray() As Variant ReDim strippedArray(0 To (inputHeight – 1)) Dim currentInput As String Dim i As Integer For i = 0 To (inputHeight – 1) currentInput = inputArray(i) '…computations on […]

VBA减去date和时间

Dim dtmStart As Date, dtmEnd As Date, dblDuration As Double dtmStart = "1900/01/01 08:10:00" dtmEnd = "1900/01/03 21:16:00" dblDuration = DateDiff("hh:mm", dtmEnd, dtmStart) 'dblDuration = dtmEnd – dtmStart MsgBox Format(dblDuration, "hh:mm") 我将如何扣除“yyyy / mm / dd hh:mm:ss”格式的两个date? 我尝试了上述两种方法,都没有工作

如何在XMLHTTP onTimeOut时使用VBAcallback函数?

我试图从Web服务器获取XML数据到Excel,然后我写了一个sendRequest函数在Excel中调用 =sendRequest("http://abb.com/index.php?id=111") 当networking服务器有问题时,无法连接或找不到,excel没有响应,太可怕了! 为了避免这种情况,我认为我们应该设定时间输出。 这些是我的function: Function sendRequest(Url) 'Call service Set XMLHTTP = CreateObject("Msxml2.ServerXMLHTTP.6.0") 'Timeout values are in milli-seconds lResolve = 10 * 1000 lConnect = 10 * 1000 lSend = 10 * 1000 lReceive = 15 * 1000 'waiting time to receive data from server XMLHTTP.setTimeOuts lResolve, lConnect, lSend, lReceive XMLHTTP.OnTimeOut = OnTimeOutMessage 'callback function […]

使用VBA为特定的Excel错误消息生成消息?

有没有办法说如果错误1004出现,显示消息“消息”,如果错误9,显示消息“消息2”,而不是通用的非描述符怪胎说话的消息最终用户?

使用德语Excelparsing美国数字格式

我正在创build一个Excel文件,帮助人们自动处理数据。 在这张表中,有数字必须被parsing(并且转换成其他单位,等等简单的计算)。 数字以美国格式表示 ,这意味着他们看起来像: 0,000,000.00 在德国 ,数字显示如下: 0.000.000,00 在VBA中,我实际上并不知道,哪个本地化版本的Excel正在使用(德语或英语)。 问题:是否有一种简单的方法将美国格式数字parsing为数据typesDouble,而不pipeExcel本地化,用户使用什么? 亲切的问候,Benedikt