Tag: for loop

Excel VBA – 为什么这个macros删除一切

我需要这个macros的帮助。 我有一个格式很差的工作簿,但每次我打开它。 其中,目标是find列B中的非空白单元格,并删除下面的整个2行以及每个填充的B单元格上方的第1行。 我在代码中的第一个循环的工作方式就像我想要的那样,但是第二个循环似乎只在第一个填充的B单元实例上工作,但是它会删除其上的所有其他内容,比如500个单元的数据。 有人可以向我解释为什么会发生这种情况吗?如果你能find一种方法把这两个循环合并为一个,那也不错。 Sub test() Dim currentSht As Worksheet Dim startCell As Range Dim lastRow As Long, lastCol As Long Dim colNames As Variant Dim i As Integer, j As Integer Set currentSht = ActiveWorkbook.Sheets(1) Set startCell = currentSht.Range("A1") lastRow = startCell.SpecialCells(xlCellTypeLastCell).Row lastCol = startCell.SpecialCells(xlCellTypeLastCell).Column For i = lastRow To 1 Step -1 […]

在“If”(Excel,VBA)中使用“For-Next”

我正在尝试在单个“If” (代码如下)中结合多个“If”和一个“For-Next”语句。 不幸的是,我总是得到一个错误信息: “编译错误:否则没有如果” 。 你能看我的代码错误吗? Sub Debugging() Workbooks("Problem.xls").Worksheets(1).Activate Cash_Rows = 5 Share_Rows = 6 If Cash_Rows <= Share_Rows Then Range("A1:A" & Cash_Rows).Select With Selection.Interior .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0.399975585192419 Count_Cash = Application.WorksheetFunction.CountIf(Range("A:A"), "L*") For Each cell In Range("A1:A" & Cash_Rows) If CStr(cell.Value) Like "L*" Then Range("A" & cell.Row & ":" & "D" & […]

无法在Excel VBA上创build循环并打印结果

我是Excel VBA的新手,我想计算两个primefaces之间的距离,并为所有想要的情况计算一个循环 与Excel中的坐标B(i),C(i),D(i)对应x,y,z直angular坐标。 这些primefaces位于:一排(i)和另一排(i + 5) 我写这个algorithm,但我不能转移到Excel VBA For i=4 to 1000 For j=9 to 1000 d=SQRT(POWER(B(i)-B(j),2)+ POWER(C(i)-C(j),2)+ POWER(D(i)-D(j),2)) print **d** in (P(i)) #want to print the distance **d** in a case j=j+4 # **j** is a multiple of 4 i=i+4 # **i** is a multiple of 4 next i 谢谢,这是我的第一个问题

VBA Excel比较工作表与嵌套对于

我想比较NBG_Data表的每一行与Comparison_Data表的每一行,所以我希望NBG_Data的每一行都与Comparison_Data表的所有行进行比较,然后转到下一行,直到它到达MAX_Row,问题是我无法嵌套For循环(我真的很想)所以我正在尝试做循环,但是当我开始的错误是“循环没有做”如果有人请告诉我我做了什么错误的Do循环或更好修改为所以我可以有一个嵌套的工作循环。 For Row = 2 To MAX_Row CompMonth = Worksheets(NBG_ComparisonDataWorksheetName).Cells(Row, SOP).Value CompMonth = DatePart("m", CompMonth) CompYear = Worksheets(NBG_ComparisonDataWorksheetName).Cells(Row, SOP).Value CompYear = DatePart("yyyy", CompYear) CompCarmaker = Worksheets(NBG_ComparisonDataWorksheetName).Cells(Row, Carmaker).Value CompProject = Worksheets(NBG_ComparisonDataWorksheetName).Cells(Row, Project).Value CompFamily = Worksheets(NBG_ComparisonDataWorksheetName).Cells(Row, Family).Value CompStatus = Worksheets(NBG_ComparisonDataWorksheetName).Cells(Row, Status).Value CompShare = Worksheets(NBG_ComparisonDataWorksheetName).Cells(Row, Share).Value Do While Row <= 2 NBGMonth = Worksheets(NBG_DataWorksheetName).Cells(Row, SOP).Value NBGMonth = DatePart("m", […]

excel vba在一个循环中select多个列

编辑 :我只有28000列,你们都是正确的,他们不能都在一张工作表。 我只用一部分数据testing了我的代码,但还没有意识到它并不适合 我有28000列的数据。 我试图复制特定列5,12,19,26 …(即对于i = 1:4000,列号= 7 *(i-1)+ 5)。 我原来的想法是在下面,但问题是,在循环的每次迭代后,前一列被取消select。 所以下面的代码不会复制预期的数据。 For i = 1 To 4000 DataSheet.Columns(7 * (i – 1) + 5).Select Next i Selection.Copy ResultsSheet.Paste 我想到了下面的替代方法(哪个工作,但是非常慢),但是我希望能够写一些更快的执行(部分问题是代码select目标工作表并单独粘贴每个列,基本上四倍于步骤与第一个解决scheme类似)。 For i = 1 To nSymbols DataSheet.Columns(7 * (i – 1) + 5).Copy ResultsSheet.Select Columns(i+1).Select ActiveSheet.Paste Next i 任何想法如何使这个代码运行(更快)?

如何将excel文件中的特定数据附加到python列表中?

我有导入一个Excel文件。 excel文件有这样的2行5列: Weights 1 5 9 8 Criteria Number 38 89 8 56 excel_file = tkFileDialog.askopenfilename(filetypes=[('excelfile','*.xlsx')],title='Choose a .xlsx file') n_crit = [] workbook = xlrd.open_workbook(excel_file) sheet = workbook.sheet_by_index(0) data = [] for r in range(sheet.nrows): sublist = [] for c in range(sheet.ncols): if r == "Weights": sublist.append(sheet.cell_value(r,c)) data.append(sublist) print data 我想追加到Excel文件中的数据列表数据。 如果任何列中的第一个单元格是Weights,那么它会将除了第一列值(权重)之外的所有权重行中的数字附加到数据列表中: data = [[1 […]

两个for工作簿中的每个循环语句更改事件

当我尝试在工作簿更改事件中为每个循环运行两个循环时,只有第二个循环执行,还有msgbox窗口可重复popup,而不是closures。 我怎样才能find一个有利的解决办法呢? 请参考下面的代码。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set a = Worksheets("first").Range("q2:q417") ' first foreachloop ——————- For Each b In a If b.Value <> "" And Not IsDate(b) Then b.ClearContents MsgBox ("please enter valid date") End If Next b 'second foreach loop ——————– Set c = Worksheets("first").Range("s2:s417") For Each C In a If C.Value […]

Split函数在循环内给出'下标超出范围'的错误

下面的代码片段试图查看一列单元格的内容。 每个单元格格式:“X.XX _-_ X.XX”。 例如:5.66 – 13.44。 代码是为了取每个单元格,将每个string转换为一个双精度值,将它们与其他数字进行比较,然后重复下一个单元格。 Sub Test() Dim PC As Worksheet Dim i As Integer Dim MaxSpace, MinSpace As Double Dim MinMax() As String Set PC = Workbooks("RFQ_Worksheet").Worksheets("Press Choice") For i = 7 To 52 MinMax = Split(PC.Cells(i, 8), " – ", 2) MaxSpace = CDbl(MinMax(1)) MinSpace = CDbl(MinMax(0)) If MaxSpace > […]

在不同的工作表中查找值

我正在尝试编写一些代码,例如,在工作表2中select单元格A2中的值,将其与工作表1中的范围A:A进行比较,如果find相同的值,则会从该工具中复制一些值在Sheet 1中将它们粘贴到Sheet 2中,然后在Sheet 2中查看单元格A3并重复该过程。 然后在Sheet 2中的单元格A4 我从这里失去了。 有任何想法吗? Sub Last_Week() Dim Sheet2 As Worksheet Dim Sheet1 As Worksheet Set Sheet2 = ActiveSheet Set Sheet1 = ActiveSheet.Previous Sheet1.Activate Dim i As Integer For i = 1 To 1500 Columns("A:A").Select Set cell = Selection.Find(What:=(ACTIVATE WS AND SELECT THE VALUE IN COLUMN A AND ROW I) If cell […]

如何使用For Loops将数据从Excel导出到Python?

我已经弄清楚如何使用For循环打印Excel电子表格中的数据,但是我知道我想将每列作为不同的variables导出,以便我可以操纵它们,例如使用plot.ly绘制graphics 我到目前为止所使用的是; import xlrd book = xlrd.open_workbook('filelocation/file.xlsx') sheet = book.sheet_by_index(0) for j in range(1,4): for i in range(2,8785): print "%d" %sheet.cell_value(i,j) 这只是从电子表格打印到我的terminal,这是没有用的所有数字。 但是我想要这样的东西; import xlrd book = xlrd.open_workbook('filelocation/file.xlsx') sheet = book.sheet_by_index(0) for j= 1: for i in range(2,8785): Time= "%s" %sheet.cell_value(i,j) for j= 2: for i in range(2,8785): SYS= "%s" %sheet.cell_value(i,j) 这将为每列声明不同的variables。 但据我所知,从错误信息我似乎使用For循环错误,我不熟悉For循环在Python中,我只有真正在Matlab中使用它们。 *编辑*固定缩进的问题,在原来的代码罚款,而不是错误的来源。