美好的一天。 这可能很简单,但我只想知道。 在我的表格的第一个子表格中,我在代码的最开始部分放置了以下行: MsgBox (ActiveWorkbook) 这样的行通常会提示工作簿处于活动状态(如电话所示)。 当放置在项目的其他部分,当然有效,但不在这里。 相反,这个错误出现: Run-time error '438': Object doesn't support this property or method 所以,我只想对这个问题有更多的了解。 谢谢。 PS。 我将这行代码放在一个简单的button_Click()。 再次感谢。
我想做一个macros。 我的testing单元在另一张纸上。 工作表 – (数据)macros如果单元格中包含值12,则检查一个范围("D2:D10") ,如果是,则显示一个消息框"Go to add to system"并且此单元格中的macrosfind的值将设置为0。 我有这个代码,但它不适用于我我不知道为什么。 你可以帮我吗? Private Sub check(ByVal Target As Range) For Each c In Worksheet("data").Range("D2:D10") If Range("D2:D10") = 12 Then MsgBox "Go to add to system" Range ("D2:D10").value = 0 End If Next c End Sub
我正在Excel VBA中编写一个脚本,该脚本根据用户input的标准在国家数据库中运行search。 search从用户UserForm用尽了三个search字段的用户search。 除了“国家”之外,用户还可以通过提及“信息类别”和“感兴趣的信息子类别”缩小search范围,所有这些字段都是链接到列表的ComboBox 。 类别和子类别的一些例子是“地理”,“经济指标”,“媒体”,“人口统计”等等。 根据用户提供的标准,脚本将返回search结果 – 如果与数据库有任何匹配 – 或者MsgBox通知search未find匹配项。 我想知道MsgBox提供的文本是固定的还是可以依赖于用户input的variables。 为了说明一下,我们举个例子,一个正在寻找美国信息的用户,只用这个标准来进行search。 该数据库包含有关美国的信息,并返回所有可用的信息。 尽pipe所有的数据,用户特别想要在美国有关媒体的信息,并重复search这两个标准。 但是,数据库没有具体的信息在美国和媒体。 在这种情况下,脚本返回一个MsgBox ,根据我目前的代码 – 哪个工作正常 – 只是说“数据库没有匹配这个search的信息”。 我的问题是: MsgBox是否可以返回一个依赖于用户search的消息,例如,返回类似“没有关于美国媒体的信息”的东西? 非常感谢您的帮助。 这是运行search的代码: country = Sheets("Results").Range("D5").Value Category = Sheets("Results").Range("D6").Value Subcategory = Sheets("Results").Range("D7").Value finalrow = Sheets("Database").Range("A200000").End(xlUp).Row For i = 2 To finalrow 'If the country field is left empty If country = "" […]
我想安排一个任务,打开一个Excel工作簿,运行一个脚本,并在指定的时间每天(过夜)closures工作簿。 我已经安排在任务计划程序中的任务,并且我知道我可以将代码设置为在打开工作簿时自动运行,但是我不希望代码在运行每次打开工作簿时运行。 有没有办法在代码的开头插入一个msgbox,以便如果在60秒内没有msgbox的响应,它会自动运行代码。 这是我所设想的,但不知道如何格式化它的“案例超时”部分: Sub Auto_Run() MsgBox "Would you like to run reports now?", vbYesNo Case vbYes 'Insert code here Case Timeout 'paste the same code as for vbYes Case vbNo End Sub
我有一个用户界面,用户input一些信息。 然后他们按下一个button来生成报告。 但是用户不能在生成报告时打开某些文件。 如果用户打开一个文件,我想要popup一个错误消息通知他们。 然后,我想让用户修复问题(closures文件),而不必重新启动程序,因为他们已经input了信息。 我有MsgBoxpopup: Do While IsFileOpen(wfileName) MsgBox "Please close the Weights Machine Data Excel File '" & getFileName(wfileName) & "' to proceed", vbInformation, "Error" Loop 问题是一旦错误消息发生,用户不能做任何事情。 我知道MsgBox是模式,但有没有办法解决这个问题。 如果不是,我希望用户返回到按下generateReportbutton之前的点,所以他们不必重新键入他们input的任何信息。 我该如何解决这个问题?
我不能得到一个msgbox的语法正确。 我想要这个盒子说: 你已经指出“雇员的名字”(工作表的一个单元格的范围引用)已经工作了“小时”(对工作表单元格的范围引用)做“工作”(对工作表单元格的范围引用) 这个信息是否正确? 这是我的(稍微缩短): Public confirmation_yes_no() Dim yesornoanswertomessagebox As String Dim questiontomessagebox As String questiontomessagebox = "You have indicated that" & worksheets("dept 1 input").range("g12"),"worked at" & worksheets("dept 1 input").range("g16"), "for" & worksheets("dept 1 input").range("g16"), vbinformation, "Are you sure that this data is correct?" yesornoanswertomessagebox = MsgBox(questiontomessagebox, vbYesNo, "FlightPlan for Profits PRO") If yesornoanswertomessagebox = […]
我正在Excel中创build一个时间表。 对于每个date,我可能会发生一个或多个事件。 在数据点上方显示每个事件的全部文本将被挤满。 每个数据点上面都有简短的描述。 我想单击标签文本或数据点,并出现一个消息框,其中包含与该事件相关的信息。 我已经有一个时间线模板,我已经设置了值。 我不想在每个事件后手动创build透明命令button。 有没有办法让VBA自动在每个数据点或数据标签背后边框或创build一个形状,并让它成为一个显示消息框的button? 更好的是,有没有比我一直在想这个过程更简单的方法呢? 非常感谢! 贾克森
在这里有许多有帮助的人的帮助下,我已经到了代码完成我所需要的事情的地步! 我真的很苦恼MsgBox在最后显示有多less行已被复制到每张工作表。 如果在同一个MsgBox有全局工作表的任何不匹配,我也想要显示它。 如果没有find不匹配的部分,则可以省略该部分。 下面是代码,我已经search工作表column Q的值,并findUserForm上的ComboBox2的匹配。 这告诉哪些表格行需要被复制,并且如果需要新的表格,那么也要命名它以及一些其他需要的信息。 Private Sub CommandButton1_Click() Dim i As Long, j As Long, k As Long, strWS As String, rngCPY As Range Dim noFind As Variant: noFind = UserForm2.ComboBox2.List '<~~~ get missed items With Application: .ScreenUpdating = False: .EnableEvents = False: .CutCopyMode = False: End With If Range("L9") = "" Then: […]
我有一个Excel表,列A,B,C,D。 C&D编号一直在变化(他们有不同的标准),因为它是通过实时提取的库存数据进行计算的。 当C&D匹配我的目标值时,我需要消息框popup,并显示列A中的行情,列B中的名称以及C / D中的数字。 有了帮助,我知道只有C列的代码: Private Sub Worksheet_Change(ByVal Target As Range) If Target.column = 3 And Target.value >= -4 And Target.value <= 4 Then Call MsgBoxMacro(Target.value, Target.column, Target.row) End If End Sub Sub MsgBoxMacro(value, column, row) MsgBox "Ticker: " & Cells(row, column – 2) & vbNewLine & "Stock Name: " & Cells(row, column – […]
请忍受我的代码。 (我不是一个好的编码器,不熟悉所有的VBA语法。) 我正在为我们所有的家庭书籍创build一个数据库。 我没有使用ACCESS或SQL,只是简单地将所有的UserForminput数据logging到一个Excel工作表中。 在我的用户窗体中,所有具有如下类别的数据:作者,stream派,出版者,书籍在内的位置等,都是通过ComboBoxinput的。 每个ComboBox的初始RowSource是Excel表中的一个范围。 在这个范围内,我已经为每个类别input了一些项目。 因此,在执行macros时,单击每个combobox的下拉箭头时,将显示列表项。 下面的代码中“Private Sub CmdEditList_Click()”的function是首先更新每个类别中的项目列表,如果在现有列表中没有find每个ComboBox中的数据的话。 其次,更新每个ComboBox的RowSource。 下面的MsgBox代码行的目的,我有一个问题,是通知用户哪些类别有一个项目添加到它的列表。 MsgBox "The following Categories were updated:" & vbNewLine & msg` 但是,例如,更新3个类别(作者,发布者和系列)的情况下,不显示作者和发布者,而是在2个换行符之后仅显示“系列”。 问题的原因是什么? 解决办法是什么? Private Sub CmdEditList_Click() Dim NextListRow As Long Dim ComboArr() Dim RangeArr() Dim MsgBoxArr() Dim CategoryArr() Dim i As Integer Dim UpdateItemCnt As Integer Dim mbi As Integer Const LASTINDEX […]