Questions tagged «vba»

Visual Basic应用程序;所有Microsoft Office应用程序中使用的Visual Basic的子集。考虑将该标签与该特定应用程序的标签一起使用。关于VBA的好问题通常包含一些代码,并要求解决特定问题。要求完整解决方案的问题(请给我代码/如何使用VBA做到这一点)不在主题之内,将因为过于广泛而封闭。

1
Excel - 在创建新选项卡时自动从单元格导入数据
我正在编写一个电子表格,汇总插入联合Excel文件中的标准模板中的数据作为单独的选项卡。 创建新选项卡时,是否可以自动将指定单元格中的数据导入摘要选项卡?由于我想要提取的数据位于每个文档的同一单元格中,这将为我节省大量的时间和精力


0
如何检测MS Access中使用的输入设备?
我已经尝试使用谷歌搜索,但所有搜索结果都是关于如何检测设备周期,而不是如何检测正在使用哪个输入设备。 我有一个条形码扫描仪,我们用来检查顾客到我们的游泳池,我想设计一个数据库,检测扫描仪何时使用,并在输入输入之前自动打开一个表格。例如:如果数据库是打开的,但没有以适当的形式,或者没有突出显示相应的字段,一旦数据库检测到传入的输入来自条形码扫描器,它将打开表单并输入输入到适当的领域。 我知道条形码传感器本质上是键盘,但有一种方法可以检测输入ID来自哪个键盘,如果是特定键盘,那么在写入输入之前运行一个sub? IF input is from barcode scanner THEN DoCmd.OpenForm "CheckIn" DoCmd.GoToControl "ScanBarcode"

0
使用双显示器,Win 8.1,Excel 2013和VBA,Visual Studio时鼠标指针毛刺。光标漂移
我一直在使用Windows 8.1和Excel 2013,我一直在为Excel编写很多VB。此外,我一直在使用Visual Studio 2013处理我正在进行的一些项目。我找到了这个答案,到目前为止一无所获。 问题是,每隔一段时间,光标就会漂移到鼠标指针左侧的25英寸处并相对于实际位置停留在那里。通常情况下,指针的图像也会出现毛刺。所以当你点击某些文字时,光标会在左边的位置出现3-4个字符。这时我正在编辑代码而不是在MY应用程序中。 系统规格 Windows 8.1 Core 2 Duo Q8400 2.66 GHz 8 GB RAM 双显示器 - [1280 x 768] x [1280x1024] 图形:Radeon HD 5700 软件:Excel在一个窗口[1280 x 1024]中使用[1280x768]中的编辑器或Visual Studio本身,在两个屏幕上分布有多个窗口。 在Visual Studio中进行调试时,在一个屏幕中使用Intellitrace而在另一个屏幕中使用Visual Studio时,发生了故障。它经常使用Excel和VBA发生。如果内存服务,它通常与剪贴板复制/粘贴文本相关联。我不能肯定地说,因为它不是经常出现的。 它将创建一系列线条,而不是箭头或光标,它是一堆毛刺的破折号,它们垂直占据两行文本,大约为0.25英寸。 图形故障会随着什么样的故障而变化,我无法按需重现它。 重新启动解决了它。我不能每1.5小时左右关闭一次电脑。有人有这个问题吗?任何想法都是受欢迎的,因为这会花费我很多时间。 提前致谢。 如果我发生故障,我会发布截图,但screencap软件没有看到故障。我将不得不用相机拍摄快照。(也许这是一个线索)

1
控件名称导致我的宏崩溃
我有一系列宏,我已经为我的现场人员创建了一个表单。当他们完成文档并希望将其发送给相应的人员时,我创建了一个FINISH宏。这基本上为他们清理文档,将文件大小从2MB +下降到大约50KB +宏(下面)基本上执行以下操作: A.)删除我在表单上输入的控制按钮,供他们输入数据时使用。这些按钮是; 冻结数据 - 将文档中的所有公式转换为静态文本 保存文件 - 根据文档上单元格的内容为文件提供唯一名称 .FINISH - 与FINISH宏对应的按钮 B.)删除带有下拉数据的选项卡。 当我尝试使用FINISH按钮运行宏时,我收到一条消息“无法运行宏”评估格式 - 2.xlsm'Button11_Click'。宏可能在此工作簿中不可用,或者可能禁用所有宏“ 工作簿中的宏 但是,当我拉起宏的列表,它清楚地表明宏是在工作簿。 Sub Finish() Application.DisplayAlerts = False ' ' Finish Macro ' Finish Document For Sending out ' ' Sheets("DropDownData").Select ActiveWindow.SelectedSheets.Delete ActiveSheet.Shapes.Range(Array("Button 10")).Select Selection.Delete Selection.Cut ActiveSheet.Shapes.Range(Array("Button 11")).Select Selection.Delete Selection.Cut ActiveSheet.Shapes.Range(Array("Button 9")).Select Selection.Delete Selection.Cut …


1
Cells属性导致运行时错误'1004'
我不断得到应用程序定义或对象定义错误,**中的代码突出显示。我怎样才能解决这个问题? Private Sub Update_Click() answer = MsgBox("Are you sure you want to update the Staff Record?", vbYesNo + vbQuestion, "Update Staff Record") If answer = vbYes Then *Cells(Row, 1) = TextBox6.Text* Cells(Row, 2) = TextBox1.Text Cells(Row, 3) = TextBox2.Text Cells(Row, 4) = TextBox3.Text Cells(Row, 5) = ComboBox1.Text Cells(Row, 6) = …

1
没有足够的内存来完成此操作
我有一点关于excel的问题。我每次打开一张表都会收到此错误: 之后像10-15分钟。我已经尝试了互联网上列出的几个东西,这里列出了我尝试的东西:添加额外的内存从32位更改为64位并反转,添加虚拟内存,禁用和启用DDE,更改办公室版本,还有一些注册设置。现在我想知道它是否可能是我正在使用的宏,它以一定间隔在两张纸之间切换。起初我认为这是一个问题,如果我把它们从共享中删除,所以我编写了一个脚本,将它们复制到本地,但错误仍然存​​在。 错误处理程序 Dim RunTime1 As Date Sub MacroSwitch() Application.DisplayFullScreen = True On Error GoTo Errhandler Application.ScreenUpdating = False Workbooks.Open Filename:= _ ThisWorkbook.Path & "\Monteursplanning.extern.xls", ReadOnly:=True ActiveWindow.WindowState = xlMaximized Exit Sub Errhandler: MsgBox "An error has occurred. The macro will end." Application.DisplayFullScreen = False End Sub StartSwitchbutton Sub MacroAutoRun1() Application.DisplayFullScreen …

0
VBA - 将宏指定给表单控件按钮
如果在Sheet21的列U(实际命名为“ROG Registration”)中出现“Self Cancelled”或“Waitlisted”,我在VBA中编写了以下代码以删除完整行。当我在ROG注册选项卡上打开VBA窗口并运行它时,它可以正常工作。 我有一个带宏按钮的单独选项卡,我将此宏指定给表单控件按钮,但是当我单击按钮时没有任何反应。 知道为什么吗?可能是我需要在代码中使用“ROG注册”名称吗?“。首先选择”选项卡,因为它位于与按钮不同的选项卡上? Sub ROG_DeleteRows() Dim r As Integer For r = Sheet21.UsedRange.Rows.Count To 1 Step -1 If Cells(r, "U") = "Self Cancelled" Then Sheet21.Rows(r).EntireRow.Delete ElseIf Cells(r, "U") = "Waitlisted" Then Sheet21.Rows(r).EntireRow.Delete End If Next End Sub

1
如何将易变的Excel公式设为静态,特别是包含TODAY函数的公式?
我有一个我在工作中创建的任务日志,以优先考虑我的日常待办事项。 在一个专栏中,我已经添加了一个公式自动计算基于与否我已经指定为紧急或不紧急和重要或不太重要的任务(其中填充为Covey的象限号码1,2,3或4)。我还有一个专栏来指定截止日期。我想自动指定截止日期,我写了一个公式来做到这一点,但TODAY功能意味着明天,我的截止日期会改变。以下是我要完成的任务: 我希望根据G列中的象限和今天的日期自动计算到期日期。 我希望明天打开工作簿时,截止日期保持不变。 当我明天进入一个新任务时,我想要使用TODAY函数再次自动计算到期日,然后在第二天再次保持静态,依此类推。 我一直在网上疯狂地研究这个话题已经有一段时间无济于事了。我发现很多建议使用CTRL +自动将今天的日期输入单元格,这不是我想要的。 请查看下面的公式,如果有任何方法可以实现我的目标,宏,vba,公式或其他方式,请告诉我。因为我正在学习宏和vba,请在你的指示中非常详细。 =IF(ISBLANK(E4),"",IF([@QUADRANT]=1, TODAY()+1,IF([@QUADRANT]=2, TODAY()+7,IF([@QUADRANT]=3, TODAY()+3, IF([@QUADRANT]=4, TODAY()+30)))))


1
Excel链接到具有变量名称的另一个工作簿和工作表
我需要使用vlookup在另一个工作簿中查找一些信息,其中工作表将是一个变量,我想从单元格引用中获取。 工作表将是供应商名称,例如: Sheet1:supplier_1 Sheet2:supplier_2 Vlookup看起来像这样: =VLOOKUP(A2,'[Suppliers List]B2'!$A:$C,3, False) A列将是产品ID的列表,B列将是供应商名称,因此在上面的示例中,B2将等于supplier_1。 是否可以直接在excel中将引用放入公式中,还是需要使用VBA?

0
在excel中创建一个在我运行VBA代码的阶段暂停的宏
我在excel中创建一个宏。 当我需要运行一些VBA代码时,我进入自动化的特定阶段。 在自动化过程中,我点击Developer并输入我需要输入的内容。 但是,当我停止录制并尝试从头开始运行宏时,它会在打开开发人员选项卡时停止,并且不会完成该过程。 Sub CreatePortfolio()' ' CreatePortfolio Macro ' ' Range("A2:H132").Select ActiveWindow.SmallScroll Down:=-144 Range("D1").Select ActiveWindow.SmallScroll Down:=-6 ActiveCell.FormulaR1C1 = "Blank" Range("H1").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = 11 .ColorIndex = 11 .TintAndShade = 0 .PatternTintAndShade = 0 End With With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlBottom .WrapText = …

1
如何比较Excel中多个可能的单元格对的差异
在Excel中,我有7列数据(数字),跨越100行。对于每一行,我想检查至少一个数字是否超过所有其他值一定值(比如0.2或更大)。如果是,则应突出显示该行。 例如: A B C D E F G 0.24 0.32 0.18 0.39 0.55 0.41 0.28 <-- Should not highlight 0.22 0.81 0.33 0.55 0.38 0.17 0.41 <-- Should highlight as column B exceeds all others by > 0.2 ... ... 给定每行中可能的组合数量,手动从所有其他列中减去每列不是理想的解决方案。有什么想法可以更好地解决这个问题吗?我对VBA解决方案持开放态度,尽管我自己的VBA经验很少。

1
宏用于创建包含单元格和文本值的文本文件
我试图在Excel中创建一个宏来创建一个文本文件,其中一些参数在excel单元格上。 输出将是例如: 这个孩子是'细胞(1,1)'老。 他的名字是'cell(1,2)'。 我已经设法创建文件,但我在文本中间添加变量。请关注我写的代码: Sub Generate_KML() Dim strPath As String Dim iFileNumber As Long Dim strHeader As String Dim strData As String strPath = Application.GetSaveAsFilename(FileFilter:= _ "KML File (*.kml), *.kml", Title:="Save Location") iFileNumber = FreeFile() strHeader = ActiveCell.Offset(1, 1) strData = "Test 2" Open strPath For Output As #iFileNumber …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.