【发布时间】:2017-03-09 20:54:57
【问题描述】:
我知道这已经被问过很多次了,但是我在使用 VBA 时遇到了问题,我对 VBA 很陌生。 我正在使用具有工作工作表的单个工作簿。基本上我需要对货币列进行排序,目前有 14 种货币,我需要遍历它(因为货币可能会根据客户添加时间)然后将带有标准的行复制到另一个带有其单元格值的工作表中。 下面是我的代码。
Option Explicit
Sub SortCurrency()
Dim rng As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
End If
Set rng = Worksheets("Sheet1").Range("AB2:AB" & I)
On Error Resume Next
Application.ScreenUpdating = False
For Each xCell In rng
If CStr(xCell.Value) = "USD" Then
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = xCell.Value
xCell.EntireRow.Copy Destination:=Sheets(Sheets.Count).Name = xCell.Value.Range("A" & J + 1)
'Sheets.Add After:=Sheets(Sheets.Count)
'Sheets(Sheets.Count).Name = xCell.Value
Application.CutCopyMode = False
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub
我基本上是从我的研究中得到代码,将它们加起来,而不是按照我想要的方式。我想保留标题和带有标准的值, i,e 货币列“AB”是美元,如上例所示,但问题是它会进行大量编码,因为我必须检查所有 14 种货币,以及是否会添加新货币, 我也知道有一种方法可以不声明多张工作表,而只是拥有另一个带有单元格值名称的新工作表,但是我在一次完成所有工作时遇到了问题。如果会有更简单和强大的代码。非常感谢。
【问题讨论】: