你好! 我在我的项目上有一个循环,在循环内,我调用一个子(Stcount)来计算一个元素的列号。 这个子进给一个string(ststring),每个循环都会改变。 但是,子(Stcount)似乎并不能识别string(ststring)中的更改。 首先,我首先定义一些我将用于这个序列的variables Public counterSt As Integer Public ststring As String Public rng As Range Public rng2 As Range 在这个子节中,我定义了将作为我的子基础的string Sub test() Dim Stx(9) As String Stx(1) = "Stx1" Stx(2) = "Stx2" Stx(3) = "Stx3" Stx(4) = "Stx4" Stx(5) = "Stx5" Stx(6) = "Stx6" Stx(7) = "Stx7" Stx(8) = "Stx9" Stx(9) = "Stx10" […]
我有一个循环逻辑的macros,我从另一个stackoverflow / ms支持页面复制,但它似乎并没有工作。 我没有经验的VBA,所以我很难找出为什么'循环通过所有工作表'部分不起作用。 任何人都可以看看我的代码,并告诉我如何解决? Sub HideEmptyRows() Dim rngName As Range Dim cell As Range Dim ws_count As Integer Dim i As Integer ws_count = ActiveWorkbook.Worksheets.Count For i = 1 To ws_count Application.ScreenUpdating = False For Each Current In Worksheets ' This code hides the adv and group merch rows For Each cell In Range("eq29", […]
目的 提取各种货币的汇率数据。 APPROACH select活动工作表并将待转换货币复制到数组中(例如[“EUR”,“GBP”,“USD”] 打开浏览器并访问货币转换网站 循环使用不同的货币并提取货币转换因子 将转换因子附加到数组 用最新的转换因子重新devise优秀 码 Sub retreiveCurrencies() Dim ws As Worksheet Dim locals() As Variant Dim exchangeArray() As Variant Dim i As Long Dim IE As Object 'Select currencies to convert Sheets("APPENDIX – CURRENCY CONVERTER").Activate locals = Array(ActiveSheet.Range("B2:B15")) 'This should return locals = ["EUR", "GBP, "USD"] 'Prep Internet Explorer Set IE […]
嗨,我有一段代码,我正在尝试写一个循环,但我正在努力如何去做。 这部分代码运行良好。 但我实际上有4个单元格,即C26,C91,C156和C221。 (请参阅代码中的容器1注释) 我设法让它循环,但是我的下面的引用(如B33,C33,D33等)只是写在上面。 反正有写一个循环,可以递增所需的65行所有的后续代码? 我真的很想学习如何做到这一点,而不是复制和粘贴4次,手动更新引用! Private Sub RunStabSetup() ' Confirmation of Entry to Form If MsgBox("Have you double checked your data is correct and ALL test points have been selected before entering on the spreadsheet?", vbYesNo) = vbNo Then Exit Sub Application.ScreenUpdating = False Application.Worksheets("Req Sheet").Range("C83") = " " If Container1CB.Value > "" […]
你好,stackoverflow社区, 我必须承认我主要是在MS Access中的代码,并且对MS Excel VBA有非常有限的经验。 我目前的目标是这样的,我有一个费用报告发送给我与扣除在另一个国家的货币,这个报告有很多列不同的帐户名称可能会填充或可能为空。 我目前有一个macros,将打开一个input框,并要求HostCurrency /美元汇率,我的下一步将开始在第一个logging(第14行;列AK包含扣除个人信息),然后跳到第一个扣除科目(扣除科目开始在列L和跨度列DG)检查每个单元格是否为空,如果它继续向右移动,如果它包含一个值,那么我想乘以我的FX利率variables在input框中input,并用收敛来更新单元格。 一旦最后一列(DG)被执行,我想移动到下一行(第15行),并一直重新开始这个过程,直到我的“已用范围”中的“LastRow”。 我非常感谢任何反馈,解释或链接,可能指向我的目标。 提前感谢您花时间阅读这个!
非常简单的问题。 我不断收到错误消息和Excel崩溃。 我的代码有什么问题: Sub Clear() Dim c As Range For Each c In ActiveSheet.Range("HeatPump1").Cells If c.EntireRow.Hidden = True Then c.Clear End If Next c End Sub
请看我的示例数据和代码,以了解我正在尝试做什么。 我需要使用Cells(,3)的值来定义一个范围来填充一个Trialnumber(18)数组。 我需要数组遍历一个For循环, 对每个试验的 H列中的已填充单元格进行计数,并在每个试验 的最后一行的列T 中打印计数。 我将来还需要这个数组进行进一步的数据分析(除非有人能想出更好的解决scheme)。 目前我正在试验3个代码模块,试图获得所需的解决scheme。 模块2是唯一一个没有错误,并打印在正确的单元格中的值,但它是打印总填充细胞计数(562),而不是每个试验 (预期值= 1或2)。 模块1如下: Sub dotcountanalysis() Dim startpoint As Long startpoint = 1 Dim lastrow As Long lastrow = Cells(Rows.Count, 3).End(xlUp).Row Dim i As Long With Worksheets("full test") For i = 1 To 18 For n = startpoint To lastrow + 1 If Cells(n, 3).Value <> […]
我试图循环浏览文件夹中的文件,从每个文件复制未知大小的数据,并将它们全部粘贴到一个新的工作簿中。 我似乎无法得到剪贴板粘贴正确,因为它总是给我一个运行时错误9,下标超出范围。 Sub LoopThroughFiles() Dim StrFile As String StrFile = Dir("filepath") Dim wb As Excel.Workbook Dim itemized As Excel.Workbook Dim dump As Excel.Workbook Do While Len(StrFile) > 0 MsgBox StrFile Set dump = Workbooks.Open("dump.xlsx") Set wb = Workbooks.Open("StrFile") Set wb = ActiveWorkbook Worksheets("DATA2").Visible = True Worksheets("DATA2").Activate Application.Goto Reference:="R1C1:R98C1" Selection.EntireRow.Delete Range("A1").Select ActiveCell.CurrentRegion.Select Selection.Copy Application.Wait DateAdd("s", 1, […]
你好,stackoverflow社区, 我必须承认我主要是在MS Access中的代码,并且对MS Excel VBA有非常有限的经验。 我目前的目标是这样的,我有一个“费用报告”被发送给我扣除,这个报告有许多列不同的帐户名称可能会填充或可能为空。 我的第一步是从第一条logging开始(第14行; AK列包含有关扣除的个人信息),然后跳到第一个扣除科目(扣除科目开始于列L并跨越列DG),检查每个单元格是否为空如果存在价值,则需要将其复制到从第2行(J栏扣除本身)开始的外部工作簿“工资单模板”中,并将其中的某些个人信息与该扣除有关的“费用报告”中的原始行(currRow:从“费用报告”到“工资模板”栏B,C,D的C,E,F列)。 然后向右移动,直到下一个单元格包含一个值,然后在“工资单模板”中的新行上重复此过程。 一旦最后一列(DG)被执行,我想移动到下一行(第15行),并一直重新开始这个过程,直到我的“已用范围”中的“LastRow”。 我非常感谢任何反馈,解释或链接,可能指向我的目标。 提前感谢您花时间阅读这个! 代码的当前状态: `< Sub LoadIntoPayrollTemplate() Dim rng As Range Dim currRow As Integer Dim UsedRng As Range Dim LastRow As Long Set UsedRng = ActiveSheet.UsedRange currRow = 14 Set wb = ActiveWorkbook '"Expense Report" Set wb2 = MyFilepath '"Payroll Template" 'Copied from another procedure, […]
我有下面的代码,问题是数组大小“varray”没有更新每次插入一个新行,我知道这通过检查varray的值每次通过Excel中的代码插入一个新行。 这意味着代码将停在固定数组的末尾。 我试图在多个点,以查看是否工作,但它没有。 Sub test() Dim i As Long Dim numbers() As Integer Dim varray As Integer varray = Sheets("Original").Cells(Rows.Count, "A").End(xlUp).Row ReDim Preserve numbers(varray) For i = 10 To varray ReDim numbers(varray) If Cells(i, 16).Value <> "" Then Cells(i + 1, 16).EntireRow.Insert Cells(i + 1, 1).EntireRow.Value = Cells(i, 1).EntireRow.Value Cells(i + 1, 6).Value = Cells(i, […]