Tag: 偏移量

MS Excel VBA – 循环遍历行和列

你好,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, […]

Google表格中的偏移量不适用于导入区域。 有没有解决办法?

我正在尝试使用下面的导入范围的偏移公式。 =OFFSET(IMPORTRANGE("googlespreadsheetkey","sheet!A1"),MATCH(A5,IMPORTRANGE("googlespre‌​adsheetkey","sheet!A‌​:A"),0)-1,1,2,2) 这是给我的 “参数必须是一个范围”的错误。 单独地,抵消和import范围都工作正常。 谢谢你的工作。

如何在VLookup导入范围输出(在Google电子表格中)下方返回一定数量的行?

例如,如果下表位于电子表格1的工作表1中: ________A_____|__B__|__C__| 1 | Monitor | 1 | a | 2 | Keyboard | 2 | e | 3 | Headset | 3 | i | 4 | HDD | 4 | o | 电子表格2中的以下公式: =Arrayformula(VLOOKUP("Monitor",importrange("spreadsheet1key", "sheet1!A1:C4",{2,3},FALSE) 返回“1”和“a”。 如下表所示,还有一种方法可以返回下面一行的内容(电子表格1的Sheet1),即“2”和“e”以及“1”和“a”吗? ________C_____|__D__|__E__| 1 | | 1 | a | 2 | | 2 | e | 如果input和输出数据都在同一张电子表格中,偏移函数可以通过以下方式轻松实现(比起@Max […]

VBA Excel范围偏移量

我有这个: Public Function Gegevens_Ophalen(ByVal ParameterRow As Integer, ByVal KolomLetterSOM As String, ByVal sheetname As String, ByVal Rij As Integer) As Single Dim WB1 As Workbook Dim WB2 As Workbook Dim WS As Worksheet Dim Filter As Object Set Filter = CreateObject("scripting.dictionary") Set Eenheden = CreateObject("scripting.dictionary") Set Processen = CreateObject("scripting.dictionary") Set Looptijd = CreateObject("scripting.dictionary") Set WB1 […]

Excelmacros将数据粘贴到列X中

我正在寻找一个macros来粘贴一些数据到一个移动的范围。 我已经有一个单元格告诉我下一个非空列的编号,这是我目前使用的代码: Dim OpenFileName As String Dim wb As Workbook 'Select and Open workbook OpenFileName = Application.GetOpenFilename() If OpenFileName = "False" Then Exit Sub Set wb = Workbooks.Open(OpenFileName) 'Get data EXAMPLE ThisWorkbook.Sheets("Teleselling 17").Range("I9:I289")*this should be dynamic, I want to paste data in a moving range*.Value = wb.Sheets("TELESELLING INBOUND").Range("L9:L289").Value wb.Close SaveChanges:=False MsgBox ("Done!")

Excel VBA。 如何select某个单元格,然后将可变数字或行向下偏移,然后打印该select

就像标题中所说的那样。 我需要在从B18到J18的区域打印一个可变数量的行。 我不知道如何设置。 该variables号通过使用=COUNTA(B20:B65536)函数保存在单元格=COUNTA(B20:B65536) 。 我只需要select下去许多行。 这是我的代码到目前为止。 Sub PrintPlease() I = Cells("O24").Value With ActiveSheet.PageSetup .Zoom = False .Orientation = xlPortrait .FitToPagesWide = 1 .FitToPagesTall = 1 ExecuteExcel4Macro ("PAGE.SETUP(,,,,,,,,,,,,{#N/A,#N/A})") If .Zoom < 30 Then .Zoom = 50 Else .Zoom = False .FitToPagesWide = 1 End If End With Range ("B18:J18"), Cells("B18").Offset((I), 3).PrintOut, Preview:=True End Sub

循环访问文件夹中的excel文件,提取列,并将它们粘贴到主文件中,其间有1个空列

我最近开始与VBA合作,并为自己分配了一个项目。 现在,这个macros应该循环遍历所有Excel文件的文件夹。 从它们中的每一个中提取一个范围,然后将它们粘贴在彼此旁边,并在主工作簿中间隔一个空列。 主手册 源工作簿1 我想添加另一个源工作簿,但我的声誉不允许这样做。 下面的代码是我在过去几周提出来的,但是我可以想象它可以更清晰。 现在,我无法在粘贴的列之间获得一个空列,并且出于某种原因,最后一个提取的列将被粘贴两次。 你能帮我解决这些问题吗? Sub SelectDataTestLoop2() 'Dim file location and file name etc. Dim FilePath As Variant Dim FileName As Variant Dim WBcount As Integer Dim OtherWB As Workbook Dim ThisWB As Workbook Dim ThisWS As Worksheet Dim WS As Worksheet 'Sheet in which the data needs to be pasted […]

Excel – 具有dynamic参考参数的偏移函数

我有麻烦做一个偏移function,使参考参数是dynamic的。 实际上,我希望offset函数始终引用某个列中的最后一个数字,其中的列由另一个表中的名称的查找函数确定。 因此,如果我在最后input另一个新号码,偏移function的参考将自动移动到引用新的(最后一个)数据点。 我认为这个问题可能是因为我正在使用HLOOKUP来查找新的参考值。 ie = OFFSET((HLOOKUP(CELLX,CELLY,2,FALSE),0,0)) 有没有办法使参考参数dynamic?

创build一个新行并select一个单元格

我想让用户能够添加行到表单,但是我需要他们以编程方式执行,以便新行包含与已分配给它的macros的checkbox。 我的解决scheme是插入一个InputBox的行,这很好。 Dim rowloc As String rowloc = InputBox("Location to Insert Row", "What row do you want to insert the new row ABOVE?") Rows(rowloc).Select Selection.Insert Shift:=xlDown 但是我有一段时间去那个新行的列B并插入checkbox。 我在VBA中创build一个新button没有问题,只是到了另一个单元就是这个问题。 Rows(rowloc).Offset(0, 1).Select 也不起作用。 任何有用的提示或解决scheme?

VBA:为什么我的范围偏移返回0(或空)?

我一直在盯着这个代码很久,我想我错过了很简单的东西。 此语句的目标是将“lastRowCompass”variables(范围)设置为列中的第一个空单元格: Set lastRowCompass = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) 一旦设置了variables,我想在循环中使用它,如下所示: For i = lastRowCompass To Range("D" & Rows.Count).End(xlUp).Row If ActiveSheet.Cells(i, 4) <> "" Then Cells(i, 4).Offset(0, -2) = hireDate End If Next 该variables被声明为一个范围,所以这是非常混乱。 当我遍历代码时,即使在执行set语句之后,i = 0。 有没有人有什么build议? 我看过的所有例子都没有帮助我解决问题。 非常感谢! 编辑:我也试过这一行: Set lastRowCompass =Range("B1").End(xlDown).Offset(1, 0) 和这一行: Set lastRowCompass = Range("B" & Rows.Count).End(xlDown).Offset(1, 0) 但是两者都有相同的结果。