我想从Excel窗体上select的下拉框中返回文本。 我已经尝试了很多东西,最近得到的是返回索引号。 还看了一下: 链接: 从下拉框中返回文本,而不是索引号 我还没有find该页面上的工作解决scheme。 我曾尝试过这样的事情: ActiveSheet.DropDowns("DropDown1").Value ActiveSheet.DropDowns("DropDown1").Text ActiveSheet.DropDowns("DropDown1").SelectedValue ActiveSheet.Shapes("DropDown1").Value 等等
我有一个Excel表,它有一些巨大的数据。 数据组织如下,一组7列和n行; 如表中所示,1000个这样的表格水平放置,空列分开。 屏幕截图如下 … 我只想将每个“表”的数据保存到不同的文件中。 手动它将需要永远! 那么,有没有一个macros或我会自动执行此任务。 我不熟悉编写macros或任何VBA的东西。 谢谢,
我是vba的新手 – 我从字面上来说只做了3天。 无论如何,我有几个表单从用户那里获取一些数据,然后我把它们写到一个单独的“日志”表的最上面一行。 我正在使用这个: With Worksheets("Log") .Unprotect .Range("A2").EntireRow.Insert Shift:=xlDown .Range("A2") = varToken .Range("B2") = varAction .Range("C2") = varLocation .Range("D2") = varTracking .Range("E2") = Date .Range("F2") = Time .Range("G2") = varPerson .Range("H2") = varOverride .Protect End With 麻烦的是,它在日志表中弹了半秒钟,然后花费很长时间来写。 我把它写到日志的最上面一行的原因是,我使用varToken的100个vlookup(有100个不同的标记来查找)在前面的表格中汇总了数据,它们查找第一个(即top)条目在日志表中。 如果更快,我可以写入日志表的底部,但是之后我需要一个代码来replace100个将查找最后一个令牌的代码,这个代码可能会在成千上万的行中出现,并且会很快运行! 提前致谢!
我正在创build来自同一个来源的各种图表。 我想能够剪切粘贴每个图表作为图片。 有谁知道正确的代码? 我尝试过,但它不起作用: Range("B21:C22").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Graphs'!$B$21:$C$22") ActiveChart.ChartType = xl3DPie ActiveChart.ChartArea.Select ActiveChart.ChartArea.Copy ActiveSheet.Pictures.Paste.Select
我需要在Excel VBA中编写一个macros,在excelclosures后终止在Windows任务中运行的进程。 我试着这样做事件workbook_BeforeClose Private Sub Workbook_BeforeClose(CANCEL As Boolean) Run "MacroCloseProcess" End Sub MacroCloseProcess是这样定义的 Private Sub MacroCloseProcess() Dim oWMT As Object, oProcess As Object Set oWMT = GetObject("winmgmts://") For Each oProcess In oWMT.InstancesOf("Win32_Process") If (oProcess.name) = pWcfHostApp Then If oProcess.Terminate() = 0 Then Exit Sub End If Next End Sub 这个工作,但是,如果在工作簿中进行了更改,Excel提供了用户选项“你想保存你对'Sheet1.xlsx'所做的更改吗?保存,不保存,取消 如果用户单击取消,Excel不会退出(按devise),但是,该进程已被终止,因为它在“BeforeClose”事件中。 我怎样才能写这个代码,以便它在Excelclosures后打?
我正在处理一个我想要自动化的excel报告,但是单元格的范围并没有被粘贴到Outlook中。 这是我的代码: Sub Mail_Selection_Range_Outlook_Body() Dim rng As Range Dim OutApp As Object Dim OutMail As Object Set rng = Nothing On Error Resume Next ' Only send the visible cells in the selection. Set rng = Selection.SpecialCells(xlCellTypeVisible) Set rng = Sheets("Sheet1").RangeToHtml("D4:D12").SpecialCells(xlCellTypeVisible, xlTextValues) On Error GoTo 0 If rng Is Nothing Then MsgBox "The selection is […]
是否有可能从一个Class Module调用位于UserForm的公共子? 我想在表单模块中进行callback,但我似乎无法得到它揭露。 这是VBA中UserForms一个基本限制吗? 它暴露在UserForm代码模块内部,我可以在Me对象的intelisense中看到它,但似乎无法从表单模块之外访问它。
我想知道是否可以使用活动单元格,我的意思是,在鼠标单击后,在给定时间用方形边框“突出显示”的单元格作为函数中的参数。 例如,我创build了一个带有3个权重的加权平均值的表:w1在列标题(请参见下面的文件)中给出,w2在行标题中,w3将w1和w2补全为1。 我想要做的是让表格外的单元格显示选中表格中的单元格时的平均重量。 例如:屏幕截图: http : //imgur.com/emmBH5S/ 文件可以在这里find: https : //drive.google.com/file/d/0B_7-00fdslR7Tm11ODRVS296ckk/ 在这里,我们看到单元格K12是有效的,对于K12 w1 = 0.2,w2 = 0.15,所以上面的权重表(行3-4)中的单元格根据活动单元格中的权重获得适当的值。 (当然我为了说明的目的而手动创build了这个) 有没有办法做到这一点? 最好没有VBA,如果可能的话找不到任何非常有用的东西… 提前致谢! 一个
在我的macros中,我有一个看段落的段,find并填充空白单元格。 Range("E10:A" & CStr(bottom – 1)).Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Value = "N/A" 哪里 bottom = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row 当范围内存在一个空白单元格时,这是完美的,但会抛出“1004错误:找不到单元格”。 在specialcells.select行。 我很难想出一个简单的方法来解决这个问题。 我明白,我可以在范围内运行一个循环来首先检查空白单元格,但是我觉得这个方法会很慢很笨重。 有没有人有更快和/或更简单的解决scheme? PS我知道我可以巩固我的上面的代码行,我只是把它放在这里,以便更容易理解; Range("E10:A" & CStr(bottom – 1)).SpecialCells(xlCellTypeBlanks).Value = "N/A"
我一直在编写一个Excelmacros,以帮助我在工作中处理数据,现在我已经完成了编写代码的工作,因为Microsoft Visual Basic不断更改.Range为.range。 每当这样做,我得到一个编译错误,因为该方法不存在。 有没有什么办法解决这一问题? 有没有办法避开使用。范围,如果没有? 只要我的代码不断从.Range更改为.range它将继续吐出错误在这里。 已解决:错误不是植根于方法,而是植根于其之前的数据成员。