편집기 설정과 관련이 있습니다. Excel에서 복사 할 때 데이터는 Windows 클립 보드에 몇 가지 다른 형식으로 저장됩니다. 이러한 포맷 중 하나는 일반 텍스트이고, 다른 포맷은 HTML이며, 아마도 독점 바이너리 포맷이있을 수 있습니다.
다른 응용 프로그램을 통과 할 때 원하는 형식의 우선 순위가 있습니다. 편집기가 먼저 HTML을 찾습니다. HTML 형식이있는 경우 HTML 형식이됩니다. 복사 된 데이터를 Windows 클립 보드에서 HTML로 표시 할 수없는 경우 편집기가 해당 목록의 # 2 형식 (일반 텍스트 일 수 있음)으로 갈 수 있습니다.
Excel 테이블을 HTML로 변환하는 방법을 제어하려면 직접해야합니다. 이 코드는 Excel 범위를 HTML 테이블로 변환합니다.
Sub CopyRangeToHtmlTable()
Dim doClip As MSForms.DataObject
Dim vaTable As Variant
Dim i As Long, j As Long
Dim aTable() As String
Dim aRow() As String
'Read range into array
vaTable = Sheet1.Range("A1:B4").Value
'set up array to hold all of the rows
ReDim aTable(1 To UBound(vaTable, 1))
'loop through the rows
For i = LBound(vaTable, 1) To UBound(vaTable, 1)
'set up array to hold all of the tds
ReDim aRow(1 To UBound(vaTable, 2))
'loop through the tds
For j = LBound(vaTable, 2) To UBound(vaTable, 2)
aRow(j) = Tag(vaTable(i, j), "td")
Next j
'add the row to the table array
aTable(i) = Tag(Join(aRow, vbNullString), "tr")
Next i
'put the table into the clipboard
Set doClip = New MSForms.DataObject
doClip.SetText Tag(Join(aTable, vbNewLine), "table", , True)
doClip.PutInClipboard
End Sub
Public Function Tag(ByVal sValue As String, _
ByVal sTag As String, _
Optional sAttr As String = "", _
Optional bIndent As Boolean = False) As String
Dim sReturn As String
If Len(sAttr) > 0 Then
sAttr = Space(1) & sAttr
End If
If bIndent Then
sValue = vbTab & Replace(sValue, vbNewLine, vbNewLine & vbTab)
sReturn = "<" & sTag & sAttr & ">" & vbNewLine & sValue & vbNewLine & "</" & sTag & ">"
Else
sReturn = "<" & sTag & sAttr & ">" & sValue & "</" & sTag & ">"
End If
Tag = sReturn
End Function
내가 메모장에 붙여
, 당신이 Dreamweaver를 사용하는 경우, 당신은 CSV 파일로 Excel 파일을 저장하고 가져올 수 있습니다
<table>
<tr><td>Name</td><td>Number</td></tr>
<tr><td>Tom</td><td>1</td></tr>
<tr><td>Dick</td><td>2</td></tr>
<tr><td>Harry</td><td>3</td></tr>
</table>