Mar 17 2023 04:14 AM
Hi All,
I am trying below code to change value of another column but getting error as type mismatch.
Sub Update_Data()
Dim lr As Long
lr = Sheet2.Range("J" & Rows.Count).End(xlUp).Row
If Not IsEmpty(Sheet2.Range("J2:J" & lr).Value) Then Sheet2.Range("I2:I" & lr).Value =IIf(Left(Sheet2.Range("J2:J" & lr).Value, 4) = "SBIN", "IFT", "NEFT")
End Sub
Mar 17 2023 04:24 AM
excel macro to change values in a column
Sub Update_Data()
Dim lr As Long
Dim i As Long lr = Sheet2.Range(“J” & Rows.Count).End(xlUp).Row For i = 2 To lr
If Not IsEmpty(Sheet2.Cells(i, “J”).Value) Then
Sheet2.Cells(i, “I”).Value = IIf(Left(Sheet2.Cells(i, “J”).Value, 4) = “SBIN”, “IFT”, “NEFT”)
End If
Next i
End Sub
Additional link/info:
Range.Columns property (Excel)
Mar 17 2023 04:26 AM
Sheet2.Range("J2:J" & lr).Value is not a single value but an array of values, so you have to loop, or write a formula to the cells. For example:
Sub Update_Data()
Dim lr As Long
Dim r As Long
lr = Sheet2.Range("J" & Rows.Count).End(xlUp).Row
For r = 2 To lr
If Sheet2.Range("J" & r).Value <> "" Then
Sheet2.Range("I" & r).Value = _
IIf(Left(Sheet2.Range("J" & r).Value, 4) = "SBIN", "IFT", "NEFT")
End If
Next r
End Sub
Mar 17 2023 04:49 AM
Mar 17 2023 05:25 AM
So what would you like to use as unique reference? The date plus a sequence number, or just a sequence number, or ...?
Mar 17 2023 06:10 AM
SolutionFor example:
Sub Import_Data()
Dim lr As Long
Dim r As Long
Dim n As Long
lr = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
For r = 2 To lr
If Sheet1.Range("A" & r).Value <> "" Then
n = n + 1
Sheet2.Range("A2").Value = Format(Date, "DDMMYYYY") & "_" & Format(n, "000")
End If
Next r
lr = Sheet1.Range("G" & Rows.Count).End(xlUp).Row
For r = 2 To lr
If Sheet1.Range("G" & r).Value <> "" Then
Sheet2.Range("I" & r).Value = _
IIf(Left(Sheet2.Range("J" & r).Value, 4) = "SBIN", "IFT", "NEFT")
End If
Next r
End Sub
(I would prefer to use YYYYMMDD as date format since that makes it easier to sort the rows if necessary)
Mar 17 2023 06:24 AM