programing

Excel 매크로 - 줄 연속선이 너무 많음

css3 2023. 8. 23. 21:55

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