Sub test()
Dim lastRow作为Integer,i作为Integer Dim cel作为Range,rng作为Range,sortRng作为Range Dim curString作为String,nextString作为String Dim haveHeaders作为Boolean
haveHeaders=False‘如果有header将其更改为TRUE。
lastRow=单元格(1,1).end(xlDown).行
' Now, let's move all "Column B" data for duplicates into Col. C
' We can check to see if the cell's value is a duplicate by simply counting how many times it appears in `rng`
Dim isDuplicate As Integer, firstInstanceRow As Integer, lastInstanceRow As Integer
If haveHeaders Then
curString = Cells(2, 1).Value
Else
curString = Cells(1, 1).Value
End If
Dim dupRng As Range 'set the range for the duplicates
Dim k As Integer
k = 0
For i = 1 To lastRow
If i > lastRow Then Exit For
Cells(i, 1).Select
curString = Cells(i, 1).Value
nextString = Cells(i + 1, 1).Value
isDuplicate = WorksheetFunction.CountIf(rng, Cells(i, 1).Value)
If isDuplicate > 1 Then
firstInstanceRow = i
Do While Cells(i, 1).Offset(k, 0).Value = nextString
'Cells(i, 1).Offset(k, 0).Select
lastInstanceRow = Cells(i, 1).Offset(k, 0).Row
k = k + 1
Loop
Range(Cells(firstInstanceRow + 1, 2), Cells(lastInstanceRow, 3)).Copy
Cells(firstInstanceRow, 5).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range(Rows(firstInstanceRow + 1), Rows(lastInstanceRow)).EntireRow.Delete
k = 0
lastRow = Cells(1, 1).End(xlDown).Row
End If
Next i
End With
End Sub
改变了这个:
Range(Cells(firstInstanceRow + 1, 2), Cells(lastInstanceRow, 2)).Copy
Cells(firstInstanceRow, 3).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
到
Range(Cells(firstInstanceRow + 1, 2), Cells(lastInstanceRow, 3)).Copy
Cells(firstInstanceRow, 5).PasteSpecial xlPasteValues
Application.CutCopyMode = False
我所拥有的是:
Column A Column B column C
322 sku322 qty 20
322 322sku qty 25
Column D column E
sku322 qty 20
322sku qty 25
Column D Column E
sku322 322sku
qty 20 qty 25
这是怎么回事?成绩截图:
注意:如果您想要整个'unique-sku'列而不仅仅是国家代码,请更改
country = Right(Cells(i, 2), 2)
到
country = Cells(i, 2).Value
Sub Macro1()
'
' Macro1 Macro
'
Dim country As String, qty As Integer
Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
' Headers
dict("country") = "sum"
' Loop through all rows starting on row 2; per Column A
For i = 2 To Sheets("Sheet1").Cells(1, 1).End(xlDown).Row
' Country = last 2 letters of Column B
country = Right(Cells(i, 2), 2)
qty = CInt(Cells(i, 3).Value)
' If it already exists, add the new amount to the sum.
If dict.Exists(country) Then
qty = dict(country) + qty
End If
' This will create it if it doesn't already exist. Otherwise, update.
dict(country) = qty
Next
' Here are some display options.
' Horizontal
Range("F2").Resize(1, UBound(dict.Keys()) + 1).Value = dict.Keys()
Range("F3").Resize(1, UBound(dict.Items()) + 1).Value = dict.Items()
' Vertical
Range("F5").Resize(UBound(dict.Keys()) + 1).Value = WorksheetFunction.Transpose(dict.Keys())
Range("G5").Resize(UBound(dict.Items()) + 1).Value = WorksheetFunction.Transpose(dict.Items())
Set dict = Nothing
'
End Sub
我有4个与“HOD”同名的文本,我想点击第一个“HOD”。 我已经尝试了所有这些:1//a[contains(text(),'HOD')][1]2//a[@class=“link_job ng binding”][1]
嗨,我需要移动每行(扫描)中的一个单元格范围,这些单元格包含特定列(在我的情况下可以是任何列,但在我的代码中是coln“e”)中的一个单元格,该值以文本字符串L开始。以下是我所尝试的(我是VBA新手)。在本例中,我希望将移动到,其中是行号。
假设我使用了两次“put”函数:
这是我第一次在这里发帖,所以请直接回答我的问题,我会尽我所能解释我的问题。 我的工作簿中有两个工作表,其中工作表1直观地表示一个有162个方格的托盘中多个单位(A1到A162)的位置。并不是所有的方格都被填满,因为有些方格是空的。 现在,第2页显示了单位A1到A162的数值。我已经使用条件格式为每个值分配颜色。 我试图从sheet2将A1的颜色复制到sheet1中具有A1值的单元格,但没有成功。
我已经编写了一个程序,找到一个包含“customer:”的单元格,并且程序成功地工作。问题是,我想要直接挨着单元格的单元格的值。布局如下所示:
当我试图运行我的代码(在底部)时,我得到了下面的错误。 soo是this. this方法适用于配置和win10toos 就我所知,它们是一样的,只是一个更小,在一条线上。 主代码