SalesForce に一括アップロードするために、Excel スプレッドシートの連絡先データをサニタイズしています。ただし、SalesForce は 100 連絡先のワークシートしか管理できません。たとえば、700 行のワークシートを、それぞれ 100 のセル参照を含む 7 つのワークブックに分割できるマクロが必要です。
私はこれを行う方法についていくつかの調査を行いましたが、これがこの目的を支援するための StackOverflow に関する唯一の参照であると信じています: Solution for Dividing WorkSheet into Multiple Files with vba/excel/c#
また、このソリューションは有望に見えますが、まだ理解するのに十分なVBAを理解していません: https://superuser.com/questions/57157/can-i-split-a-spreadsheet-into-multiple-files-based -on-a-column-in-excel-2007
ただし、選択した回答は実際には私の目的には役立ちません。誰かが私を正しい方向に向けることができますか/これを行うためのコマンドを列挙できますか?
これが私がこれまでに持っているものです-これは適切な数のワークブックを生成するようです. ここで、100 行をそれぞれの行にカット アンド ペーストする方法を理解する必要があります。
Sub Macro12()
Dim wb As Workbook
Dim p As Double
Dim p_quotient As Double
Application.ScreenUpdating = False
p = ActiveSheet.UsedRange.Rows.Count
p_quotient = p / 100
p_quotient = Application.WorksheetFunction.RoundUp(p_quotient, 0)
For i = 1 To p_quotient
Workbooks.Add
Set wb = ActiveWorkbook
ThisWorkbook.Activate
wb.SaveAs ThisWorkbook.Path & "test" & i
wb.Close
Next i
Application.ScreenUpdating = True
Set wb = Nothing
End Sub
これが私が今使っているコードです:
Sub Macro12()
Dim wb As Workbook
Dim ThisSheet As Worksheet
Dim NumOfColumns As Integer
Dim RangeToCopy As Range
Dim WorkbookCounter As Integer
Dim myDate As String
myDate = Format(Date, "yyyy.mm.dd")
Set ThisSheet = ThisWorkbook.ActiveSheet
NumOfColumns = ThisSheet.UsedRange.Columns.Count
WorkbookCounter = 1
For p = 1 To ThisSheet.UsedRange.Rows.Count Step 101
Set wb = Workbooks.Add
Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + 100, NumOfColumns))
RangeToCopy.Copy wb.Sheets(1).Range("A1")
wb.SaveAs ThisWorkbook.Path & "\Salesforce Lead Conversion " & myDate & " Part " & WorkbookCounter & ".xls"
wb.Close
WorkbookCounter = WorkbookCounter + 1
Next p
Application.ScreenUpdating = True
Set wb = Nothing
End Sub