我试图设置一个macros来添加一个值,比如10,给一个已经存在公式的现有单元格。 我想细胞保持公式。 这是我迄今为止所做的: Sub addvalue 'Keyboard Shortcut: Ctrl+Shift+A ActiveCell.Formula = ActiveCell.Formula + 10 End Sub 这不适合我。 它适用于单元格只是一个数字,但不是当我试图调整的单元格是一个公式。 如果我试图调整的单元格包含=A1 + 4 ,我运行这个macros,我想它是macros后运行=A1 + 14 。
有这个macros的ABC.xls文件。 现在,当我按下Ctrl + M时,macros有一个被调用的子组件。 这个小组将打开一个打开文件对话框,用户可以select一个CSV文件。 所以基本上,这个macros用于处理和保存CSV文件。 下面是按Ctrl + M被调用的代码。 Sub runProperChangeSubroutine() ' Assigned to shortcut key CTRL + M. file_name = ActiveWorkbook.Name ' Gets the file name. Application.Run file_name & "!ChangeSub" End Sub 当用户closures工作簿时,我必须testing一个像CSV每一行的条件都有一个终止string。 如果该终止string不存在,我应该popup一个消息框给用户,并防止closures工作簿。 所以我做了以下… Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim improperRowNumber As Integer Dim BlnEventState As Boolean improperRowNumber = returnImproperRow() BlnEventState = Application.EnableEvents […]
我的function如下: Sub saveCSV() Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:= _ "c:\temp\file.csv", FileFormat:=xlCSV _ , CreateBackup:=False End Sub 我正在尝试将活动工作表导出为CSV。 当我在标题中运行代码时,Book1.xlsm更改为file.csv,Sheet1更改为文件。 出口工作正常。 我怎样才能做出口没有这些不必要的副作用?
我有一个Excel工作簿包含三个工作表。 然而,所有工作表似乎都隐藏着,因为它们的可见性设置为xlSheetVisible(通过查看VBA编辑器中的工作表属性来find)。 这是我迄今为止所尝试解决的问题。 向Google寻求帮助,但所有类似的问题已经通过将可见性从xlSheetHidden更改为xlSheetVisible来解决。 但在我的情况下,该设置已被设置为xlVisible。 通过使用VBA我试图激活一个表没有任何结果。 通过阅读本文,您可能已经猜到,我能够从VBA编辑器中查看和访问工作表。 尽pipe看着正常的Excel用户界面,所有的button都被禁用了,并且点击办公室/文件button,但不允许我保存工作簿。 但是,如果我对VBA本身进行了任何更改并尝试closures工作簿,Excel会询问是否要保存工作簿。
我一直在试图寻找答案,但我在VBA中的基础技能不足以帮助我确定我正在编写的代码。 到目前为止,我有这个代码: Sub ADOFromExcelToAccess() ' exports data from the active worksheet to a table in an Access database ' this procedure must be edited before use Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long ' connect to the Access database Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _ "Data Source=\\GSS_Model_2.4.accdb;" ' […]
我有一个有20行的表,并且表隐藏了我的表上方的单元格中指定的行数。 所以如果我把5放入单元格,20行中的5个将被隐藏。 所以现在我想获得现在未隐藏的说5格的MAX。 我将如何做到这一点?
我有一个Excel文件中的列,在其中我只有像'ReleaseDoc'的值,但他们都是这样的超链接: \\server1\folder1\subFolderA\subFolderB\SubFolderC\RealseaseDoc.doc 现在,我想要做的是在另一列中有从超链接中提取的文件的path,我已经用这个macros函数 Function HLink(rng As Range) As String If rng(1).Hyperlinks.Count Then HLink = rng.Hyperlinks(1).Address End Function 在每个单元格中,我都会从我想要提取地址的适当单元中调用此函数 问题是,我得到的是这样的: ../../../SubFolderB/SubFolderC/RealeasesDoc.doc 我没有看到文档的完整path,任何人都可以帮助这个vba函数? PS:我已经search了post,没有发现这样的事情 谢谢
我正在build立一个VBAmacros,它将'search'关键字术语'燃料'的文件夹,并从所有返回的文件中提取所有的信息,并把它们放入一个'数据'表。 例如,我有一个文件夹星期数(1 – 52跨年,所以在新的一年,这将只包含一个文件夹,但将build立和build设的一年),所以我search这个文件夹的所有.doc文件包含一词“燃料”。 您只需在顶部的searchfunction中input“fuel”,然后显示所有文件名,所有文件中包含“fuel”字样,就可以通过windowssearch来完成。 我目前有,但这只是寻找一个文件,在其名称“燃料”,而不是包含它的insisde。 Sub LoopThroughFiles() Dim MyObj As Object, MySource As Object, file As Variant file = Dir("c:\testfolder\") While (file <> "") If InStr(file, "fuel") > 0 Then MsgBox "found " & file Exit Sub End If file = Dir Wend End Sub 我已经做了一些寻找这个,但我不能得到任何东西的工作:(我的VB技能需要一个复习,我想。 先进的谢谢你。 JB
这是我用来在Virtual Basicdynamic创build图表的代码: Dim Chart As Object Set Chart = Charts.Add With Chart If bIssetSourceChart Then CopySourceChart .Paste Type:=xlFormats End If For Each s In .SeriesCollection s.Delete Next s .ChartType = xlColumnClustered .Location Where:=xlLocationAsNewSheet, Name:=chartTitle Sheets(chartTitle).Move After:=Sheets(Sheets.count) With .SeriesCollection.NewSeries If Val(Application.Version) >= 12 Then .values = values .XValues = columns .Name = chartTitle Else .Select Names.Add […]
昨天晚上,我遇到了一件事情,在我弄明白之前十五分钟,我已经疯了十几分钟。 但是我不明白为什么会这样,所以我希望有人能够澄清。 从VBA IDE中的“立即”窗口中: ?Format(0.5, "HH:MM AM/PM") 12:00 PM ?Format("0.5", "HH:MM AM/PM") 12:05 AM ?Format(CDbl("0.5"), "HH:MM AM/PM") 12:00 PM 从这个页面我看到0.5应该对应于12:00 PM,因为一小时是0.04166 …( (12 * (1/24) = 0.5) )。 正如你所看到的,如果我将一个数字传递给Format()而不是如果我将相同的数字作为string传递的话。 根据同一页的信息,1分钟为0.00069444 …( (1/(24*60)) ),这意味着12:05 AM应该存储在Excel中0.003472222( (0 * (1/24)) + (5 * (1/(24*60))) )。 事实上: ?Format(0.003472222, "HH:MM AM/PM") 12:05 AM 我不明白一些更古怪的东西: ?Format(2.5, "HH:MM AM/PM") 12:00 PM ?Format("2.5", […]