Tag: 范围

macros将循环通过一个范围来填充相邻单元格的坐标值

我正在帮助修改相机校准实验室的Excel电子表格。 原来的校准实验室只有一个工作站,有14个固定目标,允许目标的X, Y, & Z坐标被硬编码成电子表格。 新的实验室有90多个目标,可能有多个站点。 我想制作一个macros允许用户简单地将目标编号插入一个单元格区域,当macros运行时,与第一列相邻的三列(范围)将填充每个目标对应的坐标。 最好将坐标存储在另一个工作表中,按目标编号sorting, X, Y, & Z坐标位于单元格右侧。 我在想代码会是这样的; Define range of target numbers for each cell in range, If cell(2,4) = 1 then ' 1 is the target number cell(2,5) = cell(1,2) ' from another worksheet x value cell(2,6) = cell(1,3) ' Y value cell(2,7) = cell(1,4) ' Z value […]

比较范围并在VBAmacros中填充值

我正在尝试编写一个macros来比较Excel中的两个范围,Rng1和Rng2。 Rng1(“f2:f15”)包含正在使用的目标号码。 Rng2,(“a2:a91”)包含所有可能目标的编号。 Rng2右边的三列(“b2:b91”),(“c2:c91”)和(“d2:d91”)包含与每个目标编号关联的x,y和z坐标值。 我想让这个macros做的是在Rng1右边的3列(“g2:g15”),(“h2:h15”)和(“i2:i15”)中填充坐标值在Rng1中find的目标号码。 我写的下面的代码是重新调整“运行时错误”13,types不匹配“。 Sub macro() Dim Rng1 As Range, Rng2 As Range, Cell1 As Range, Cell2 As Range Set Rng1 = Range("f2:f15") Set Rng2 = Range("a2:a91") For i = 1 To Rng1 For j = 1 To Rng2 For Each Cell1 In Rng1(i) For Each Cell2 In Rng1(j) If Cell1.Value = Cell2.Value […]

在VBA中dynamic引用UsedRange

我有一个代码,从表单中获取数据并创build一个graphics。 在源表中,每列是一个系列,并且系列的数量可能会改变。 我的代码做了什么:它读取使用的范围,以便它可以绘制值。 Obs1:对于创build的两个时间序列,数据是按年计算的,所以我向后计算,如果之前的数据less于一年,则代码显示为“Not Enough Data”。 问题:如果我使用2个时间序列(2列)运行代码,那么在图表中会出现两行。 但是,如果我删除其中一个系列并再次运行,则会在图表中显示一行数值和第二个空行。 问:这个问题怎么解决? 我已经尝试过了:我正在尝试改变引用范围的方式,以便重新运行代码,只返回包含值的行。 问题是我无法find正确引用范围的方法。 代码的相关部分: Function Grapher(ChartSheetName As String, SourceWorksheet As String, ChartTitle As String, secAxisTitle As String) Dim lColumn As Long, lRow As Long Dim LastColumn As Long, LastRow As Long Dim RetChart As Chart Dim w As Workbook Dim RetRange As Range Dim chrt As Chart […]

VBA:将设置范围数据从一个工作簿转置到另一个工作簿

我的项目涉及到从一个文件夹中的文件复制数据到一个excel。 该文件夹中的文件有行中的数据,我需要将数据转置到一个Excel(数据库Excel)。 我发现了一些非常接近我需要的代码,我正试图修改那些代码来为我工作。 它看起来像我只需要修改在下面的代码的目标,但我无法得到任何调整工作。 完整的代码可以在这里find: http : //www.rondebruin.nl/win/s3/win008.htm 我错过了什么将数据从行转移到列? If Not sourceRange Is Nothing Then SourceCcount = sourceRange.Columns.Count If Cnum + SourceCcount >= BaseWks.Columns.Count Then MsgBox "Sorry there are not enough columns in the sheet" BaseWks.Columns.AutoFit mybook.Close savechanges:=False GoTo ExitTheSub Else 'Copy the file name in the first row With sourceRange BaseWks.Cells(1, Cnum). _ Resize(, […]

用户窗体列表框项目作为string,其中每个项目引用活动工作表上的列范围

背景:我有一个从A:AN列的Excel文件。 工作表用于跟踪多个零件的状态。 每部分1行,每列指的是被跟踪部分的不同元素。 (供应商,重量等) 在工作表中,我有一个macros来生成一个报告,它select一个预定义的列的范围,将它们复制到一个新的工作簿,并给它一个时间戳加上一点格式,使之成为我想要的报告格式。 这工作魅力,没有问题。 我的问题是 ,现在我希望用户能够select他们想要包含在报告中的列。 我用两个列表框创build了一个用户表单。 ListBox1有每列的标题,我已经设置了控制button,以允许单个或多个项目select,并将其移动到ListBox2。 我喜欢它,当单击命令button时,ListBox2中显示的每个项目将代表一个列,他们将被合并到一个范围,然后可以用于我的原始代码来创build报告。 我已经在这一个完整的空白。 一切都在实际使用ListBox2中的项目,以一种有用的方式来生成一个范围,可以在我的代码中使用后面的行。 任何想法,我应该如何进行? 任何帮助将非常感激。 我到目前为止所尝试的是:1)添加引用每个AddItem命令下面的范围的ItemData – 这导致编译错误编译错误 2)将每个列标题声明为一个范围,我尝试将范围作为一个AddItem添加到列表框中,但我得到了一个运行时错误。 运行时错误 正如我所说,其余用户表单的代码正在做我想要的,但我不知道如何克服或设置下一步。 我已经包含了我所有的代码供您参考。 除列表框之外,还有更简单的方法吗? Private Sub cmdMoveAllLeft_Click() 'Variable Declaration Dim iCnt As Integer 'Move Items from ListBox1 to ListBox2 For iCnt = 0 To Me.ListBox2.ListCount – 1 Me.ListBox1.AddItem Me.ListBox2.List(iCnt) 'Me.ListBox1.ItemData(.NewIndex) = Me.ListBox2.ItemData(iCnt) Next iCnt 'Clear ListBox1 […]

在VBA函数中计算一行中的不间断“串”string的数量

我一直在为这个争斗好几天,显然是失去了一些东西。 自从我上一次使用VBA以来,我一直在努力记住。 寻找一行中“1”的“游览”或不间断“串”的数量。 数据和答案我正在寻找的是这个(每个数字在自己的专栏): 0 0 1 1 1 0 1 0 1 = 3 1 0 0 0 0 0 0 0 0 = 1 0 0 0 0 1 1 1 1 1 = 1 已经尝试了以下function: Function TOURCOUNT(TourList As Range) Dim var As Variant var = TourList.Value For Each var In TourList If […]

Excel VBA应用程序来电者复制2个范围

朋友,我在编程上很穷,但也许有人愿意帮忙。 我的电子表格包含18个范围和2个不同的保护区标题。 我需要将1个标题和1个范围复制并合并到另一个不受保护的区域。 用户应该按下一个button,macros将数据带到可以粘贴的新位置。 对于button操作,我有一个application.caller隐藏和显示行。 我认为这是一个好的开始。 我也有一组范围的复制macros。 我想把这两个结合到一个新的macros。 Sub Macro_copy_RIVA1() Range("RHEAD").Copy Range("RIVA1").Copy Application.Goto Reference:="R1120C2" Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Cut End Sub 我的隐藏/显示行的应用程序调用者是(感谢Stackoverflow) Sub ShowHideRows() Dim arr 'split the calling button name into an array ' (array will be zero-based) arr = Split(Application.Caller, "_") '**EDIT** check array is expected size… […]

Excel VBA – 如何select整个边界表

我很新的Excel VB。 我希望你能帮助我的问题。 我有几个这样的桌子 这些表格可以通过用户插入新行等进行编辑。 我想要突出显示并复制最新的表格(最后一行),并将其粘贴到下一个可用空间,即3行。 我设法做到这一点,但我只能用数据突出显示和复制单元格。 所以在表格中间应该有一个空行,或者空的最后一行有边框,否则不能正确复制,如下所示: 我仍然需要复制包括空行在内的所有内容,但是我缺乏这方面的技能和知识。 我希望你能协助。 以下是我的代码: Sub CopyPaste() LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row FirstColumn = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlNext).Column LastColumn = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column BelowLastName = Cells.Find("", After:=Cells(LastRow, FirstColumn), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Row Cells(BelowLastName, FirstColumn).Select 'This selects C5 (refer image) Selection.Offset(-1).Select 'This selects C4 (refer image) Range(Selection, Cells(LastRow, LastColumn)).Select 'This highlights whole table […]

无法通过时粘贴范围的问题

我有5个客户文件,我想用下面的VBA代码清理。 一切顺利,一切顺利。 然而; 当我运行代码时,错误的范围被粘贴了。我已经花了一些时间来彻底重写我的范围引用,以避免使用.Select在任何地方。 这似乎没有帮助。 有任何想法吗? Sub convert_Customer() Dim xl As Excel.Application Dim wkbks As Workbooks Dim wksht As Worksheet Dim Rng As Range Dim StartCell As Range Dim Dir As String Dim LastRow As Long Dim LastColumn As Long Application.CutCopyMode = True Application.DisplayAlerts = False Dir = "C:\Users\User\Documents\User\Customer\BI Input" Excel.Workbooks.Open Dir & "\Customer.xlsx" With […]

根据单元格vba的特性创build一个dynamic范围

我想比较两个不是粗体的单元格的总和,或者单元格内部的颜色是空的。 我想比较列的单元格的值的总和,只有当列的标签是“miercoles”,“jueves”,“viernes”或“sabado”,并且在查阅四列后才着色最大的结果对于第一个标签1,2,3和4.我做了这个代码,但我没有在variablesg中保存任何范围。 我如何创builddynamic范围g? Sub reuniones_dos_horas() Dim r As Range Dim r2 As Range a = 2 While Sheets("Dinamicos").Cells(27, a) <> "" b = 1 While Sheets("Dinamicos").Cells(27, a) <= b + 3 c = 2 While Sheets("Dinamicos").Cells(29, c) <> "" Drev = Sheets("Dinamicos").Cells(29, c) If Sheets("Dinamicos").Cells(29, c) = "Miercoles" Or Sheets("Dinamicos").Cells(29, c) = "Jueves" Or Sheets("Dinamicos").Cells(29, […]