これは何度か尋ねられていますが、私の列L:Lの負の値をループに入れる方法はかなり混乱しています。私はそれを働かせることはできません。私は研究したすべてを試しました。私はどんな助けにも感謝しています。列の正の値を負の値に変換するVBA
Option Explicit
Sub Importpaymentsales()
Dim fpath As Variant
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim Text As String
On Error GoTo terminatemsg
Set wb = Excel.ActiveWorkbook
Set ws = Excel.ActiveSheet
fpath = Application.GetOpenFilename(Filefilter:="text Files(*.txt; *.txt), *.txt; *.txt", Title:="Open Prepayment Sales Report")
If fpath = False Then Exit Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Text = getTextfileData(fpath)
If Len(Text) Then
ProcessData Text
AdjustDates
Else
MsgBox fpath & " is empty", vbInformation, "Import Cancelled"
Exit Sub
End If
ws.Range("J:L").Value = ws.Range("J:L").Value
ws.Range("J:L").numberformat = "#,##0.00"
ws.Range("O:Q").Value = ws.Range("O:Q").Value
ws.Range("O:Q").numberformat = "#,##0.00"
Columns.EntireColumn.AutoFit
Sheets(1).Move Before:=wb.Sheets(1)
terminatemsg:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
If Err.Number <> 0 Then MsgBox Err.Number & " " & Err.Description
End Sub
Sub ProcessData(Text As String)
Dim x As Long, y As Long, z As Long
Dim data, vLine
data = Split(Text, vbCrLf)
x = 2
Range("A1:R1").Value = Array("Supplier Name", "Supplier Number", "Inv Curr Code CurCode", "Payment CurCode", "Invoice Type", "Invoice Number", "Voucher Number", "Invoice Date", "GL Date", "Invoice Amount", "Withheld Amount", "Amount Remaining", "Description", "Account Number", "Invoice in USD", "Withheld in USD", "Amt in USD", "User Name")
For y = 0 To UBound(data)
If InStr(data(y), "|") Then
vLine = Split(data(y), "|")
If Not Trim(vLine(0)) = "Supplier" Then
For z = 0 To UBound(vLine)
vLine(z) = Trim(vLine(z))
If vLine(z) Like "*.*.*.*.*.*.*.*.*.*.*.*.*.*.*" Then vLine(z) = Left(vLine(z), InStr(vLine(z), ".") + 2)
Next
Cells(x, 1).Resize(1, UBound(vLine) + 1).Value = vLine
x = x + 1
'Range("L2:L").Value = Range("L2:L").Value * (-1)
Range("L2:L").Value = Abs(rng.Offset(teller - 1, -2).Value) * -1
End If
End If
Next
End Sub
どこにループがありますか?このループでは、どのような特定の問題がありますか? (これは非常に基本的な概念です。「For Each ... Next'の概要」(https://msdn.microsoft.com/en-us/library/office/gg264596.aspx)と「For .. .Next'](https://msdn.microsoft.com/en-us/library/office/gg251601.aspx)(後者は索引付けが必要です) –
こんにちはdavid!のsubProcessdataは、マクロから私のループが起こっているところですテキストファイルからExcelファイルにデータをインポートしています。私が欲しいのは、Lと正の値を持ち、負の値を持っている列の下にあります。 – Anne
コードはコンパイルされません。 'rng'変数は宣言されておらず、割り当てられていないと' Range( "L2:L")という行に 'Object Required'というエラーが出ます。値= Abs(rng ...'文'' teller'変数も宣言されていない/割り当てられていませんこのステートメントは 'For y'ループの* each反復で実行され、前の反復の値を上書きします –