Not sure whether this is applicable in your situation, but I got around the issue of external data in vignette by downloading a file from network location to a tempfile()
at build time.
Obviously works only for small files (tens of kb in my case), but seems to be OK with CRAN.
Taken from vignette from package RCzechia.
GET("https://raw.githubusercontent.com/jlacko/RCzechia/master/data-raw/zvcr034.xls",
write_disk(tf <- tempfile(fileext = ".xls")))
## Response [https://raw.githubusercontent.com/jlacko/RCzechia/master/data-raw/zvcr034.xls]
## Date: 2019-01-03 21:14
## Status: 200
## Content-Type: application/octet-stream
## Size: 44.5 kB
## <ON DISK> /tmp/Rtmp7QWxv8/file322b22dec355.xls
src <- read_excel(tf, range = "Data!B5:C97") # read in with original column names