Tag: excel vba

在Excel中显示毫秒

我正试图在Excelmacros中显示毫秒。 我有一列整数,简单地说是以毫秒为单位的时间戳(例如28095200是7:48:15.200 am),我想在它旁边新build一个保持运行平均值的新列,并以“hh:mm :ss.000“格式。 我已经尝试了多种不同的路线,但是我根本无法获得毫秒而不会导致奇怪的事情发生。 这是我现在所拥有的: Dim Cel As Range Set Cel = Range("B1") temp = Application.Average(Range("A1:A2")) / 1000 ms = Round(temp – Int(temp), 2) * 1000 Cel.Value = Strings.Format((temp / 60 / 60 / 24), "hh:mm:ss") _ & "." & Strings.Format(ms, "#000") 出于某种原因,这只在单元格中显示“mm:ss.0”。 然而当我点击单元格时,它会在公式栏中显示“hh:mm:ss”。 为什么在单元格中缺less小时? 此外,另一个奇怪的事情是,如果我把最后一行改为Strings.Format(ms, "#000.") ,那么我会得到“hh:mm:ss.000”。 这就是我想要的,而不是额外的时间。

如何在Excel VBA中将整数转换为string?

如何在Excel VBA中将integer数值“45”转换为string值“45”?

如何检查vbamacros中的空数组

我想检查空数组。 谷歌给了我不同的解决scheme,但没有奏效 也许我没有正确应用它们。 Function GetBoiler(ByVal sFile As String) As String 'Email Signature Dim fso As Object Dim ts As Object Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2) GetBoiler = ts.ReadAll ts.Close End Function Dim FileNamesList As Variant, i As Integer ' activate the desired startfolder for the filesearch FileNamesList = CreateFileList("*.*", False) ' […]

使用Excel VBA将数据导出到MS Access表

我目前使用下面的代码从工作表导出到MS Access数据库的数据,代码循环每一行,并插入数据到MS Access表。 Public Sub TransData() Application.ScreenUpdating = False Application.EnableAnimations = False Application.EnableEvents = False Application.DisplayAlerts = False ActiveWorkbook.Worksheets("Folio_Data_original").Activate Call MakeConnection("fdMasterTemp") For i = 1 To rcount – 1 rs.AddNew rs.Fields("fdName") = Cells(i + 1, 1).Value rs.Fields("fdDate") = Cells(i + 1, 2).Value rs.Update Next i Call CloseConnection Application.ScreenUpdating = True Application.EnableAnimations = True Application.EnableEvents = […]

如何把一个工具提示放在用户定义的函数上

在Excel 2007中,如何将描述和参数提示添加到用户定义的函数中? 当我开始为内置函数input函数调用时,Excel会显示一个描述和参数列表 – 一个工具提示。 我想为我定义的function做同样的事情。 不只是公式插入向导,而是在公式框中,所以如果我键入“= myFun(”,在“(”工具提示popup,就像“= average(” 在VBA帮助中没有任何帮助,MSDN上没有任何帮助,在任何Excel和VBA专用论坛上我都找不到任何帮助,所以这显然是一个很长的路要走。

如果当*值*是指定的那个时,Not函数继续

我试图编写一个脚本,检查另一个工作表中的重复值,但我不能得到它的工作。 在线路problem ,If函数总是继续,无论是否设置为If Not或If 。 LocatedCell不等于Nothing。 我相信这是一个明显的错误,但我无法理解。 Sub mailer_followuptest() Application.ScreenUpdating = False 'Remove matching contacts data from last run Dim wsDel As Worksheet Application.DisplayAlerts = False Err.Clear On Error Resume Next Set wsDel = Sheets("Matching Contacts") wsDel.Delete Dim mailerSheet As Worksheet Set mailerSheet = Worksheets("Call data") Set MatchingContacts = Sheets.Add MatchingContacts.Name = "Matching Contacts" Dim […]

Excel VBA – 将具有重复值的行组合到一个单元格中,并合并其他单元格中的值

我想在一列中find重复值,并将第二列的值组合成一行。 我也想总结第三栏的值。 例如: ABCD h 4 w 3 h 4 u 5 h 4 g 7 h 4 f 4 k 9 t 6 k 9 o 6 k 9 p 9 k 9 j 1 会成为 ABCD k 9 t;o;p;j 22 h 4 w;u;g;f 19 我已经使用的代码的第一部分是 Sub mergeCategoryValues() Dim lngRow As Long With ActiveSheet […]

强制Excel VBA中的屏幕更新

我的Excel工具执行一个长时间的任务,我试图通过在状态栏或工作表中的某个单元格中提供进度报告来对用户友好,如下所示。 但屏幕不刷新,或停止刷新某些点(如33%)。 任务最终完成,但进度条是无用的。 我能做些什么来强制屏幕更新? For i=1 to imax ' imax is usually 30 or so fractionDone=cdbl(i)/cdbl(imax) Application.StatusBar = Format(fractionDone, "0%") & "done…" ' or, alternatively: ' statusRange.value = Format(fractionDone, "0%") & "done…" ' Some code……. Next i 我正在使用Excel 2003。

如何在Excel中统计不同字体的文字

我有一个从另一个数据库导入到excel的名称列表。 列表中感兴趣的名称以红色字体突出显示。 我想要一个方法来计算它,即约翰·史密斯(John Smith)在一列中出现5次总共5次中的3次,他的名字以红色字体突出显示。 所以我想看看他的名字有多less个实例是红色的。 我知道如何search他的名字的所有实例eg = COUNTIF(A1:A100,“John Smith”) 我也有帮助创build一个VB函数,通过使用这个函数计算工作表中的所有红色(= SumRed)值(一旦指定颜色索引): Function SumRed(MyRange As Range) SumRed = 0 For Each cell In MyRange If cell.Font.Color = 255 Then SumRed = SumRed + cell.Value End If Next cell End Function 我无法find一种方法来结合这两种计数条件。 任何帮助将不胜感激!

设置自动筛选多个通配符

现在我正在做编码设置数据图表的filter。 基本上,我不知道如何在这里发布数据表,所以只要input它们即可): (从左边开始是列A)名称* B设备*数量*出售*所有者 基本上我需要过滤掉2列: – 带有任何字的BDevice包含“M1454”或“M1467”或“M1879”(这意味着M1454A或M1467TR仍然适合) – 拥有PROD或RISK的所有者 这是我写的代码: Sub AutoFilter() ActiveWorkbook.ActiveSheet..Range(B:B).Select Selection.Autofilter Field:=1 Criteria1:=Array( _ "*M1454*", "*M1467*", "*M1879*"), Operator:=xlFilterValues Selection.AutoFilter Field:=4 Criteria1:="=PROD" _ , Operator:=xlOr, Criteria2:="=RISK" End Sub 当我运行代码时,机器返回错误1004,似乎是错误的部分是filter第2部分(我不确定使用的字段,所以我不能肯定地说) 编辑; Santosh:当我尝试你的代码时,机器出错9的下标超出范围。 错误来自with语句。 (因为数据表有A到AS列,所以我只是改为A:AS)