我有以下代码,当表Sub MatchCustomersToCase()
Dim lookUpValue
'step 1 select sheet 1 the spreadsheet.
Sheet1.Select
'step 2 loop customer id
For I = 1 To 12
Set workingcell = Worksheets("Sheet1").Cells(I, 2)
lookUpValue = workingcell.Value
cellAddress = workingcell.Address()
'select sheet 2
Sheet2.Select
'find the value in sheet 2
Call Find_value_in_sheet2(lookUpValue, cellAddress)
Next
End Sub
Sub Find_value_in_sheet2(somevalue, fromAddress)
Dim FindString As String
Dim Rng As Range
Dim caseType As String
Dim CaseValue As String
Dim listOfValues As Variant
listOfValues = Array(somevalue)
If Trim(somevalue) <> "" Then
With Sheets("Sheet2").Range("A:A")
For I = LBound(listOfValues) To UBound(listOfValues)
Set Rng = .Find(What:=listOfValues(I), _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
FirstAddress = Rng.Address
Do
Application.Goto Rng, True
caseType = Rng.Offset(0, 1).Value
If Trim(caseType) = "Case 1" Then
CaseValue = Rng.Offset(0, 2).Value
Sheet1.Range(fromAddress).Offset(0, 1).Value = CaseValue
ElseIf Trim(caseType) = "Case 2" Then
CaseValue = Rng.Offset(0, 2).Value
Sheet1.Range(fromAddress).Offset(0, 2).Value = CaseValue
ElseIf Trim(caseType) = "Case 3" Then
CaseValue = Rng.Offset(0, 2).Value
Sheet1.Range(fromAddress).Offset(0, 3).Value = CaseValue
ElseIf Trim(caseType) = "Case 4" Then
CaseValue = Rng.Offset(0, 2).Value
Sheet1.Range(fromAddress).Offset(0, 4).Value = CaseValue
ElseIf Trim(caseType) = "Case 5" Then
CaseValue = Rng.Offset(0, 2).Value
Sheet1.Range(fromAddress).Offset(0, 5).Value = CaseValue
End If
Set Rng = .FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress
End If
Next I
End With
End If
End Sub
超过1行时,它会给我一个错误。有什么想法吗?
@ListaDeProducto
表架构
insert into Solicitud_Plastico_Interna_Detalle(
IDSolicitud_Plastico_Interna
,IDTipo_Producto
,Cantidad_Solicitada
,Create_User
,Create_Date
,Contingencia
,Total
)
select
@IdSolicitud
,IDTipo_Producto
,Cantidad_Requerida
,@USUARIO
,getdate()
,Contingencia
,Total
from @ListaDeProducto
答案 0 :(得分:0)
我仍然打赌桌子上有一些触发器。
那你为什么不尝试创建一个新表来证明这个查询可以用多行
CREATE TABLE Solicitud_Plastico_Temporal AS (
select
@IdSolicitud as IDSolicitud_Plastico_Interna
,IDTipo_Producto
,Cantidad_Requerida
,@USUARIO as Create_User
,getdate() as Create_Date
,Contingencia
,Total
from @ListaDeProducto
)