|
Option Explicit
Sub sbMakeMarkdown()
' https://daringfireball.net/projects/markdown/syntax#html
' https://stackoverflow.com/questions/72806674/how-copy-text-from-vba-to-windows-clipbaord/72857101#comment134719963_72857101
' https://stackoverflow.com/questions/76528307/how-to-transfer-data-from-table-to-another-in-2-different-worksheets
' https://learn.microsoft.com/en-us/office/vba/api/excel.range.text
' On Wed, 25 Dec 2024 at 17:29, Alexei Shatikhin wrote:
' sbMakeMarkdown always takes A1 and to right/down despite the selected range.
Dim iRows, iColumns, iRow, iColumn, iStartRow, iStartColumn, iHeader As Long
Dim sValue, sMarkdown, sText As String
Dim rSelectedRange As Range
Set rSelectedRange = Application.Selection
iColumns = rSelectedRange.Columns.Count
iRows = rSelectedRange.Rows.Count
iStartColumn = rSelectedRange.Column
iStartRow = rSelectedRange.Row
sMarkdown = ""
For iRow = iStartRow To iRows
If iRow = iStartRow + 1 Then
For iHeader = iStartColumn To iColumns
sMarkdown = sMarkdown & " | ---"
Next iHeader
sMarkdown = sMarkdown & " | " & vbCrLf
End If
For iColumn = iStartColumn To iColumns
sText = Cells(iRow, iColumn).Text
sMarkdown = sMarkdown & " | " & sText
Next iColumn
sMarkdown = sMarkdown & " | " & vbCrLf
Next iRow
CreateObject("htmlfile").ParentWindow.ClipboardData.SetData "text", sMarkdown
End Sub
|
|