Excel 매크로 - 줄 연속선이 너무 많음
"대규모" SQL 쿼리(예: 200줄)가 있습니다.
dim query as string
query = "..................................." & _
"..................................." & _
.... Like a lot lines later...
"..................................."
function query,"sheet 1"
이렇게 하면 Excel은 "줄이 너무 많이 이어짐"이라고 말합니다.
이것을 피하는 가장 좋은 방법은 무엇입니까?
단 하나의 방법이 있습니다. 연속을 덜 사용하는 것입니다.
이 작업은 줄에 더 많은 텍스트를 넣거나 다르게 표현된 연결을 사용하여 수행할 수 있습니다.
query = ".........."
query = query & ".........."
query = query & ".........."
그러나 외부 소스에서 텍스트를 전체적으로 로드하는 것이 가장 좋습니다.
쿼리를 여러 섹션으로 나눕니다.
query = _
"............" & _
"............" & _
"............"
query = query & _
"............" & _
"............" & _
"............"
query = query & _
"............" & _
"............" & _
"............"
지금까지 제가 발견한 것은
Call AddToArray(query, "...")
Call AddToArray(query, "...")
... a lot lines later...
Call AddToArray(query, "...")
*edit: 추가하는 것을 잊었습니다:
Sub AddToArray(myArray As Variant, arrayElement As Variant)
If Not IsArrayInitialized(myArray) Then
ReDim myArray(0)
myArray(0) = arrayElement
Else
ReDim Preserve myArray(UBound(myArray) + 1)
myArray(UBound(myArray)) = arrayElement
End If
End Sub
출처: 링크 텍스트 X(감사합니다.
(아직도 더 나은 방법을 기다리고 있습니다...) 감사합니다:P
VBA 연결을 지원하기 위해 VBA를 사용하는 것은 어떻습니까?
이 코드를 확인해 보세요(매우 원시적이고 자유롭게 조정할 수 있습니다). 기본적으로 워크시트에 있는 "Fast_string"이라는 데이터를 "A:" 열에 사용합니다.E" 및 F 열에서는 예비 변수 "prelim_string"을 사용하여 연결에 대한 코드를 준비합니다.이것을 사용한 다음 열 F의 솔루션을 코드에 복사하여 붙여넣으면 됩니다.천만에요 ;)
Sub FAST_STRING()
Dim cel As Range, lastcel As Range, prel_r As String, i As Integer, cr As Integer
With ThisWorkbook.Worksheets("Fast_string")
Set lastcel = .Cells(10000, 1).End(xlUp)
For Each cel In .Range(.Cells(1, 1), lastcel)
cr = cel.row
prel_r = ""
For i = 1 To 5
If .Cells(cr, i) = "" Then
prel_r = prel_r & " "
Else
prel_r = prel_r & " " & Replace(.Cells(cr, i).Value, """", """""")
End If
Next i
If cr = 1 Then
prel_r = "Prelim_string =" & """" & prel_r & """" & " & chr(10) & _"
ElseIf cr / 20 = Round(cr / 20) Then
prel_r = "Prelim_string = Prelim_string & " & """" & prel_r & """" & " & chr(10) & _"
Else
prel_r = """" & prel_r & """" & " & chr(10) & _"
End If
If cr = lastcel.row Or (cr + 1) / 20 = Round((cr + 1) / 20) Then prel_r = Left(prel_r, Len(prel_r) - 14)
cel(1, 6) = prel_r
Next cel
End With
End Sub
언급URL : https://stackoverflow.com/questions/2806151/excel-macros-too-many-line-continuations
'programing' 카테고리의 다른 글
Oracle SQL에서 결과를 한 행으로 제한하는 방법 (0) | 2023.08.23 |
---|---|
TSQL을 사용하여 테이블의 기본 키 결정 (0) | 2023.08.23 |
쉼표로 구분된 값으로 두 테이블 결합 (0) | 2023.08.23 |
도커 1.9+에서 명명된 볼륨의 내용을 나열하는 방법은 무엇입니까? (0) | 2023.08.23 |
jQuery를 사용하여 빈 텍스트 입력 선택 (0) | 2023.08.23 |